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