Maison > base de données > tutoriel mysql > le corps du texte

Comment trier les résultats MySQL selon l'ordre spécifié dans la clause IN() ?

Mary-Kate Olsen
Libérer: 2024-11-12 17:28:01
original
700 Les gens l'ont consulté

How to Sort MySQL Results by the Order Specified in the IN() Clause?

MySQL : Trier les résultats par ordre de spécification IN()

Lors de la récupération de données avec une clause IN(), maintenir l'ordre dans lequel les valeurs ont été spécifiées peuvent améliorer la lisibilité et la convivialité de la sortie. Cet article explore une solution pour trier les résultats en fonction de la séquence de valeurs dans la fonction IN().

Considérez la requête suivante :

SELECT id, name FROM mytable WHERE name IN ('B', 'A', 'D', 'E', 'C');
Copier après la connexion

Cette requête renvoie le résultat suivant, où l'ordre des lignes n'est pas cohérent avec l'ordre dans la clause IN() :

| identifiant | nom |
^--------^---------^
| 5 | B |
| 6 | B |
| 1 | D |
| 15 | E |
| 17 | E |
| 9 | C |
| 18 | C |

Pour trier les résultats dans l'ordre spécifié dans la clause IN(), nous pouvons utiliser la fonction FIELD. La fonction FIELD prend une valeur comme premier argument et renvoie la position de cette valeur dans la liste d'arguments restante.

La requête suivante utilise la fonction FIELD pour trier les résultats en fonction de la position du « nom » valeurs de colonne dans la liste ("B", "A", "D", "E", "C") :

SELECT id, name
FROM mytable
WHERE name IN ('B', 'A', 'D', 'E', 'C')
ORDER BY FIELD(name, 'B', 'A', 'D', 'E', 'C')
Copier après la connexion

Cette requête renvoie le résultat suivant :

| identifiant | nom |
^--------^---------^
| 5 | B |
| 6 | B |
| 1 | D |
| 15 | E |
| 17 | E |
| 9 | C |
| 18 | C |

Comme vous pouvez le voir, les lignes sont désormais classées dans l'ordre initialement spécifié dans la clause IN().

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!

source:php.cn
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