Maison >base de données >tutoriel mysql >Comment puis-je conserver l'ordre des lignes dans les requêtes conditionnelles à l'aide de la clause « WHERE IN » ?

Comment puis-je conserver l'ordre des lignes dans les requêtes conditionnelles à l'aide de la clause « WHERE IN » ?

Barbara Streisand
Barbara Streisandoriginal
2024-10-27 02:39:03566parcourir

How Can I Preserve Row Order in Conditional Queries Using `WHERE IN` Clause?

Préservation de l'ordre des lignes dans les requêtes conditionnelles

Problème :

Lors de l'utilisation de la clause WHERE IN, les lignes sont généralement ordonnées ascendant par la colonne spécifiée dans la clause ORDER BY. Cependant, il existe des scénarios dans lesquels il est souhaité de conserver l'ordre des lignes tel que spécifié dans la clause IN.

Solution :

Pour y parvenir, vous pouvez utiliser le Fonction COMMANDE PAR CHAMP. Cette fonction réorganise les lignes en fonction de l'ordre spécifié dans ses arguments.

Exemple :

Considérez la requête suivante :

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

Cette requête renverra les lignes classées par identifiant par ordre croissant. Pour conserver l'ordre des lignes tel que spécifié dans la clause IN, vous pouvez utiliser la requête modifiée suivante :

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

En spécifiant l'ordre souhaité comme arguments de la fonction FIELD, les lignes seront réorganisées pour correspondre à cela commande.

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