Maison  >  Article  >  base de données  >  Comment trier les lignes en fonction de l'ordre dans une clause WHERE IN ?

Comment trier les lignes en fonction de l'ordre dans une clause WHERE IN ?

DDD
DDDoriginal
2024-10-27 12:40:03294parcourir

How to Order Rows Based on the Order in a WHERE IN Clause?

Ordre des lignes selon la clause WHERE IN à l'aide de ORDER BY FIELD

Dans les requêtes de base de données, la clause WHERE IN vous permet de filtrer les données en fonction de une liste spécifiée de valeurs. Cependant, par défaut, les lignes renvoyées peuvent ne pas être dans le même ordre que celui spécifié dans la clause.

Pour trier les lignes selon l'ordre fourni dans la clause WHERE IN, vous pouvez utiliser ORDER BY FIELD( ) fonction. Cette fonction prend deux arguments :

  • Le champ par lequel vous souhaitez trier les lignes (dans ce cas, le champ id)
  • Une liste de valeurs séparées par des virgules de WHERE IN clause

Par exemple, étant donné la requête suivante :

SELECT *
FROM table
WHERE id IN (118, 17, 113, 23, 72);

Qui renvoie les lignes par ordre croissant par ID, vous pouvez utiliser la fonction ORDER BY FIELD() pour obtenir le lignes dans l'ordre spécifié dans la clause WHERE IN :

SELECT *
FROM table
WHERE id IN (118, 17, 113, 23, 72)
ORDER BY FIELD(id, 118, 17, 113, 23, 72)

Dans cette requête, la fonction ORDER BY FIELD() trie les lignes par champ id, mais dans l'ordre spécifique de 118, 17, 113 , 23 et 72, comme spécifié dans la clause WHERE IN.

Grâce à cette technique, vous pouvez facilement trier les lignes selon l'ordre spécifié dans votre clause WHERE IN, en vous assurant qu'elles sont renvoyées dans l'ordre souhaité.

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:
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