Maison > base de données > tutoriel mysql > Comment hiérarchiser les valeurs de champs spécifiques lors de la commande des résultats de la base de données dans MySQL ?

Comment hiérarchiser les valeurs de champs spécifiques lors de la commande des résultats de la base de données dans MySQL ?

DDD
Libérer: 2025-01-14 09:00:41
original
616 Les gens l'ont consulté

How to Prioritize Specific Field Values When Ordering Database Results in MySQL?

Tri des résultats de la base de données MySQL : prioriser les valeurs de champs spécifiques

Dans les opérations sur les tables de base de données, il est courant de prioriser les enregistrements avec des valeurs de champ spécifiques. Par exemple, considérons un tableau avec les colonnes et données suivantes :

id name priority
1 core 10
2 core 9
3 other 8
4 board 7
5 board 6
6 core 4

La tâche consiste à réorganiser les résultats en fonction du champ priority, mais en donnant la priorité aux lignes où name est égal à "core". Le résultat souhaité est le suivant :

id name priority
6 core 4
2 core 9
1 core 10
5 board 6
4 board 7
3 other 8

Dans MySQL, ce tri peut être réalisé à l'aide de la fonction FIELD(). Voici quelques moyens :

Trier entièrement toutes les valeurs :

<code class="language-sql">SELECT id, name, priority
FROM mytable
ORDER BY FIELD(name, "core", "board", "other");</code>
Copier après la connexion

Cette requête triera les résultats selon l'ordre spécifié dans la fonction FIELD(), en donnant la priorité aux valeurs qui apparaissent en premier.

Seul le « core » sera priorisé :

<code class="language-sql">SELECT id, name, priority
FROM mytable
ORDER BY FIELD(name, "core") DESC;</code>
Copier après la connexion

Cette requête donne la priorité aux lignes où DESC est égal à "core" en utilisant name, quelles que soient leurs autres valeurs de champ.

Préserve l'ordre de tri des autres valeurs :

<code class="language-sql">SELECT id, name, priority
FROM mytable
ORDER BY FIELD(name, "core") DESC, priority;</code>
Copier après la connexion

Cette requête donne la priorité aux lignes « principales » en utilisant d'abord FIELD(), puis trie les lignes restantes dans l'ordre priority normal.

Il est important de noter que la fonction FIELD() renvoie l'index de base un de la valeur correspondante, ou zéro si la valeur n'est pas trouvée. Par conséquent, DESC doit être utilisé à moins que toutes les valeurs possibles ne soient spécifié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!

source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal