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!