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.
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);
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);
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!