


Comment trier les résultats d'une requête en fonction d'une liste spécifique d'identifiants dans MySQL ?
Oct 30, 2024 pm 04:52 PMPersonnalisation de l'ordre des résultats de requête avec FIND_IN_SET
Bien qu'il puisse sembler intuitif de s'attendre à ce qu'une instruction SELECT préserve l'ordre des ID spécifiés, en par défaut, MySQL renverra les résultats dans un ordre arbitraire. Cependant, avec une technique astucieuse utilisant la fonction FIND_IN_SET, vous pouvez remplacer ce comportement et établir un ordre prédéterminé pour vos résultats.
Considérez la requête suivante, qui vise à récupérer les ID 7, 2, 5, 9 et 8 :
SELECT id FROM table WHERE id in (7,2,5,9,8);
Quel que soit l'ordre des identifiants dans la clause WHERE, les résultats seront toujours renvoyés dans l'ordre interne de la table. Pour personnaliser l'ordre, vous pouvez utiliser 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");
En fournissant une liste séparée par des virgules de l'ordre souhaité dans le deuxième argument de FIND_IN_SET, vous créez essentiellement un classement. La position de chaque ID dans la liste détermine son ordre dans le jeu de résultats.
Par exemple, la requête ci-dessous classera les résultats dans l'ordre spécifié par le deuxième argument :
SELECT id FROM table WHERE id in (7,2,5,9,8) ORDER BY FIND_IN_SET(id,"8,2,5,9,7");
Utiliser ceci technique, vous avez un contrôle précis sur l'ordre des résultats de votre requête, vous donnant la flexibilité d'organiser les données en fonction d'une séquence prédéfinie.
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!

Article chaud

Outils chauds Tags

Article chaud

Tags d'article chaud

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Réduisez l'utilisation de la mémoire MySQL dans Docker

Comment modifier une table dans MySQL en utilisant l'instruction ALTER TABLE?

Comment résoudre le problème de MySQL ne peut pas ouvrir la bibliothèque partagée

Exécutez MySQL dans Linux (avec / sans conteneur Podman avec phpmyadmin)

Exécuter plusieurs versions MySQL sur macOS: un guide étape par étape

Comment sécuriser MySQL contre les vulnérabilités communes (injection SQL, attaques par force brute)?

Comment configurer le cryptage SSL / TLS pour les connexions MySQL?
