Maison > base de données > tutoriel mysql > Comment puis-je trier les résultats d'une requête SQL selon plusieurs valeurs dans une séquence spécifique ?

Comment puis-je trier les résultats d'une requête SQL selon plusieurs valeurs dans une séquence spécifique ?

Linda Hamilton
Libérer: 2025-01-08 18:08:42
original
247 Les gens l'ont consulté

How Can I Order SQL Query Results by Multiple Values in a Specific Sequence?

Trier plusieurs valeurs dans un ordre spécifique

En SQL, les résultats des requêtes peuvent être triés selon plusieurs valeurs, mais uniquement si ces valeurs doivent être incluses dans la clause ORDER BY. Si vous essayez de trier selon plusieurs valeurs qui ne sont pas incluses dans la clause ORDER BY (comme dans l'exemple fourni), la requête ne renverra aucun résultat.

Pour trier plusieurs valeurs dans un ordre précis, il est recommandé d'utiliser l'instruction CASE :

...
WHERE
   x_field IN ('f', 'p', 'i', 'a') ...
ORDER BY
   CASE x_field
      WHEN 'f' THEN 1
      WHEN 'p' THEN 2
      WHEN 'i' THEN 3
      WHEN 'a' THEN 4
      ELSE 5 -- 对IN子句中未包含的值的回退。例如:x_field = 'b'
   END, id
Copier après la connexion

Dans cet exemple, l'instruction CASE attribue une priorité numérique à chaque valeur de la colonne x_field (« f » vaut 1, « p » vaut 2, et ainsi de suite). Les résultats sont ensuite triés en fonction de cette priorité puis par la colonne id pour garantir un tri unique au sein de chaque niveau de priorité.

En utilisant l'instruction CASE, vous pouvez spécifier l'ordre de tri souhaité pour plusieurs valeurs. Dans cet exemple, les résultats seront triés dans l'ordre « f », « p », « i » et « a », comme spécifié dans l'instruction CASE.

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!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal