MYSQL ORDER BY CASE Problème : Combinaison d'horodatages pour la commande
Dans le scénario présenté, nous avons une table avec quatre lignes, où chaque ligne contient deux identifiants et deux horodatages. La tâche consiste à récupérer les quatre lignes et à les classer en fonction des horodatages d'une manière spécifique.
L'objectif est de donner la priorité à la colonne timestamp_one pour le classement lorsque id_one correspond à 27, et à la colonne timestamp_two lorsque id_two correspond à 27. Le résultat attendu est d'avoir les lignes ordonnées comme si les deux colonnes d'horodatage n'en formaient qu'une.
Pour y parvenir, nous pouvons modifiez l'instruction existante comme suit :
SELECT id_one, id_two, timestamp_one, timestamp_two FROM tablename WHERE id_one = 27 OR id_two = 27 ORDER BY CASE WHEN id_one=27 THEN timestamp_one WHEN id_two=27 THEN timestamp_two END DESC
Dans cette instruction mise à jour, nous donnons la priorité au classement par timestamp_one lorsque id_one est 27 et timestamp_two lorsque id_two est 27. L'instruction CASE garantit que la colonne d'horodatage correcte est utilisée pour chaque rangée.
La sortie résultante sera classée comme suit :
------------------------------------------------------------------- | id_one | id_two | timestamp_one | timestamp_two | ------------------------------------------------------------------- | 27 | 35 | 9:30 | NULL | ------------------------------------------------------------------- | 35 | 27 | NULL | 9:33 | ------------------------------------------------------------------- | 27 | 35 | 9:34 | NULL | ------------------------------------------------------------------- | 35 | 27 | NULL | 9:35 | -------------------------------------------------------------------
Ceci répond à l'exigence de trier les lignes comme si les deux colonnes d'horodatage n'en formaient qu'une, en donnant la priorité à timestamp_one pour les lignes avec id_one de 27 et timestamp_two pour les lignes avec id_two de 27.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!