J'ai utilisé l'instruction Case dans ORDER BY pour y parvenir.
ORDER BY CASE when (DATE(created_on) = DATE(in_selected_date)) THEN 1
when (DATE(created_on) < DATE(in_selected_date) AND DATEDIFF(DATE(created_on), DATE(in_selected_date)) = -1) THEN 2
when (DATE(created_on) > DATE(in_selected_date) AND DATEDIFF(DATE(created_on), DATE(in_selected_date)) = 1) THEN 3
when (DATE(created_on) < DATE(in_selected_date) AND DATEDIFF(DATE(created_on), DATE(in_selected_date)) = -2) THEN 4
when (DATE(created_on) > DATE(in_selected_date) AND DATEDIFF(DATE(created_on), DATE(in_selected_date)) = 2) THEN 5
ELSE 1 END ASC
Vraiment la requête la plus étrange. –