Lorsque vous travaillez avec des bases de données MySQL, vous pouvez rencontrer des situations dans lesquelles vous devez trier les enregistrements à l'aide d'un ensemble spécifique de valeurs des colonnes. Cela peut être utile dans divers scénarios, tels que le classement des enregistrements dans une séquence prédéfinie ou le maintien d'un tri cohérent malgré un changement d'ordre de tri.
Une de ces solutions consiste à exploiter la clause « ORDER BY » en conjonction avec la fonction FIELD. En utilisant la fonction FIELD, vous pouvez spécifier une liste de valeurs qui détermineront l'ordre de tri.
La syntaxe de cette approche est la suivante :
SELECT * FROM table ORDER BY FIELD(column_name, value1, value2, ...)
Dans l'exemple fourni, vous souhaitez trier les enregistrements par ID dans l'ordre de 1, 5, 4 et 3. Vous pouvez y parvenir en utilisant la requête suivante :
SELECT * FROM table ORDER BY FIELD(ID, 1, 5, 4, 3)
Cette requête renvoie les enregistrements dans l'ordre spécifié, quel que soit l'ordre de tri actuel défini sur la table.
Pourquoi avez-vous besoin de ceci :
Comme mentionné dans la question, cette approche est particulièrement utile si vous avez besoin pour modifier l'ordre de tri de manière aléatoire à intervalles réguliers. Cependant, il convient de noter que la pagination peut être un problème dans ce scénario.
Approches alternatives :
Si vous êtes principalement préoccupé par la pagination et le maintien d'un ordre de tri cohérent sur plusieurs pages, il existe des alternatives approches que vous pouvez envisager :
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!