Maison > base de données > tutoriel mysql > Comment conserver l'ordre des lignes dans les requêtes SQL avec la clause WHERE IN ?

Comment conserver l'ordre des lignes dans les requêtes SQL avec la clause WHERE IN ?

Barbara Streisand
Libérer: 2024-10-30 03:34:28
original
999 Les gens l'ont consulté

How to Maintain Row Order in SQL Queries with WHERE IN Clause?

Contrôle de l'ordre des lignes avec la clause WHERE IN

Dans une instruction SQL (Structured Query Language) qui utilise la clause WHERE IN, les lignes renvoyées peuvent ne pas toujours respecter les ordre spécifié dans la clause.

Préserver l'ordre des lignes avec la fonction FIELD()

Pour remédier à cela, on peut utiliser la fonction FIELD() en conjonction avec la clause ORDER BY. La fonction FIELD() attribue une position à chaque ligne en fonction de l'ordre des valeurs spécifié dans la clause IN. En classant les lignes en fonction de cette position assignée, on peut conserver l'ordre d'origine de la clause WHERE IN.

Par exemple, considérons la requête SQL suivante :

SELECT *
FROM table
WHERE id IN (118, 17, 113, 23, 72);
Copier après la connexion

Cette requête renvoie le lignes dans un ordre croissant en fonction de la colonne ID, en ignorant l'ordre spécifié dans la clause WHERE IN. Pour obtenir les lignes dans l'ordre spécifié par la clause IN, exécutez la requête suivante :

SELECT *
FROM table
WHERE id IN (118, 17, 113, 23, 72)
ORDER BY FIELD(id, 118, 17, 113, 23, 72);
Copier après la connexion

Dans cette requête, la clause ORDER BY organise les lignes selon l'ordre des valeurs (118, 17, 113, 23, 72) spécifié dans la fonction FIELD(). Par conséquent, les lignes renvoyées respecteront la séquence définie dans la clause WHERE 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