Maison  >  Article  >  base de données  >  Comment puis-je récupérer des données dans un ordre spécifique dans MySQL sans me fier à la valeur d'un champ ?

Comment puis-je récupérer des données dans un ordre spécifique dans MySQL sans me fier à la valeur d'un champ ?

DDD
DDDoriginal
2024-10-30 07:12:02429parcourir

 How Can I Retrieve Data in a Specific Order in MySQL Without Relying on a Field's Value?

Préserver l'ordre dans les résultats de requête : une solution

Dans MySQL, récupérer des données dans un ordre spécifique sans s'appuyer sur la valeur d'un champ spécifique peut être stimulant. Considérons le scénario suivant : sélectionner les ID 7, 2, 5, 9 et 8 tout en conservant cet ordre exact comme résultat.

L'approche traditionnelle consistant à utiliser les clauses IN, comme le montrent les exemples fournis, ne garantit pas l'ordre souhaité. Cependant, une solution intrigante a émergé qui exploite la fonction FIND_IN_SET :

SELECT id FROM table
WHERE id in (7, 2, 5, 9, 8)
ORDER BY FIND_IN_SET(id, "7,2,5,9,8");

Cette requête attribue effectivement à chaque ID une position dans la séquence « 7,2,5,9,8 ». La fonction FIND_IN_SET renvoie la position de l'ID dans la séquence donnée. Par exemple, l'ID 7 est en position 1, l'ID 2 est en position 2, et ainsi de suite.

En triant les résultats selon la sortie de FIND_IN_SET, la requête garantit que les ID récupérés s'alignent avec l'ordre spécifié dans le deuxième argument. Cette solution complexe permet aux développeurs d'imposer un ordre prédéterminé aux résultats des requêtes, ouvrant ainsi de nouvelles possibilités de manipulation des données.

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