Maison >base de données >tutoriel mysql >Introduction détaillée de MySQL pour implémenter le tri de liste personnalisé par champs spécifiés
L'éditeur suivant vous apportera un article MySQL implémentation du tri de liste personnalisé par champs spécifiés. L'éditeur pense que c'est plutôt bien, alors je vais le partager avec vous maintenant et le donner comme référence. Suivons l'éditeur pour y jeter un œil
Description du problème
Comme nous le savons tous, le SQL pour trier un certain champ par ordre croissant dans MySQL est (avec l'identifiant comme exemple, le même ci-dessous) :
SELECT * FROM `MyTable` WHERE `id` IN (1, 7, 3, 5) ORDER BY `id` ASC
Le SQL pour l'ordre décroissant est :
SELECT * FROM `MyTable` WHERE `id` IN (1, 7, 3, 5) ORDER BY `id` DESC
Parfois, le tri ci-dessus ne peut pas satisfaire nos besoins. Par exemple, nous voulons trier par identifiant dans l'ordre 5, 3, 7, 1, comment y parvenir. C’est également l’un des problèmes que rencontrent souvent de nombreux collègues en Allemagne et à l’étranger.
Ci-dessous, nous donnons une solution pour trier selon un certain champ dans le tableau dans le format de liste souhaité.
Solution
Utilisez "ORDER BY FIELD" (ORDER BY FIELD).
Syntaxe
ORDER BY FIELD(`id`, 5, 3, 7, 1)
Il est à noter qu'il n'y a pas d'espace après FIELD.
Par conséquent, le SQL complet est :
SELECT * FROM `MyTable` WHERE `id` IN (1, 7, 3, 5) ORDER BY FIELD(`id`, 5, 3, 7, 1)
Applications communes
SELECT * FROM `MyTable` WHERE `name` IN ('张三', '李四', '王五', '孙六') ORDER BY FIELD(`name`, '李四', '孙六', '张三', '王五')
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!