Maison  >  Article  >  base de données  >  Comment récupérer des lignes dans un ordre spécifique à l’aide de la clause WHERE IN ?

Comment récupérer des lignes dans un ordre spécifique à l’aide de la clause WHERE IN ?

DDD
DDDoriginal
2024-10-26 15:31:30138parcourir

How to Retrieve Rows in a Specific Order Using the WHERE IN Clause?

Récupérer les lignes dans l'ordre spécifié à l'aide de la clause WHERE IN

Lors de l'interrogation de données à l'aide de la clause WHERE IN, les lignes sont généralement renvoyées par ordre croissant ordre en fonction du champ spécifié dans la clause. Cependant, il peut y avoir des cas où vous devez récupérer les lignes dans l'ordre exact dans lequel elles apparaissent dans la clause WHERE.

Cela peut être réalisé en utilisant la fonction ORDER BY FIELD. La fonction FIELD renvoie la position d'une valeur spécifiée dans une liste séparée par des virgules. En utilisant cette fonction, vous pouvez trier les lignes selon l'ordre des valeurs répertoriées dans la clause WHERE IN.

Exemple :

Considérez la requête suivante :

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

Cette requête renvoie les lignes classées par ID dans l'ordre croissant. Pour récupérer les lignes dans l'ordre précisé dans la clause IN, on peut modifier la requête comme suit :

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

La fonction ORDER BY FIELD prend deux paramètres :

  • Le champ à trier
  • Une liste de valeurs séparées par des virgules dans l'ordre dans lequel elles doivent apparaître dans le résultat

Dans ce cas, nous trions les lignes par le champ id, et le les valeurs de la liste séparées par des virgules spécifient l'ordre dans lequel les lignes doivent être renvoyées.

En utilisant la fonction ORDER BY FIELD, vous pouvez vous assurer que les lignes sont renvoyées dans l'ordre exact spécifié 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!

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