MySQL : order by avec des champs null

Personnaliser l'algorithme de tri grâce à coalesce.

Coalesce est une fonction SQL qui prend une liste de paramètres en entrée et retourne le premier non null. Si tous les paramètres sont null, null est retourné.

Vous pouvez utiliser un coalesce dans un order by pour trier différemment selon qu'un champ soit vide ou contienne une valeur spécifique.

Trier avec des champs vides

SELECT * FROM payment ORDER BY COALESCE (date_refund, date_debit, date_create) DESC -- OU SELECT COALESCE (date_refund, date_debit, date_create) AS last_operation_date, p.* FROM payment p ORDER BY last_operation_date DESC -- Un champ peut être filtré sur une valeur spécifique SELECT COALESCE( date_refund, IF(payment_method = "carte bancaire", NULL, date_debit), date_create ) AS last_operation_date, p.* FROM payment p ORDER BY last_operation_date DESC