Maison  >  Article  >  base de données  >  Introduction détaillée de MySQL pour implémenter le tri de liste personnalisé par champs spécifiés

Introduction détaillée de MySQL pour implémenter le tri de liste personnalisé par champs spécifiés

黄舟
黄舟original
2017-03-25 13:37:181966parcourir

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!

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