Maison >base de données >tutoriel mysql >Comment trier les résultats MySQL avec une valeur de champ spécifique en premier ?

Comment trier les résultats MySQL avec une valeur de champ spécifique en premier ?

Patricia Arquette
Patricia Arquetteoriginal
2025-01-14 07:49:42890parcourir

How to Order MySQL Results with a Specific Field Value First?

Tri prioritaire des valeurs de champs spécifiques dans MySQL

Dans MySQL, vous pouvez afficher préférentiellement les enregistrements avec des valeurs de champs spécifiques. Par exemple, si votre table contient des colonnes id, name et priorité, vous souhaiterez peut-être d'abord afficher les enregistrements avec name="core", quelle que soit leur priorité.

Vous pouvez utiliser la fonction FIELD de MySQL pour y parvenir :

Tri complet de toutes les valeurs :

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

Cela triera les résultats dans l'ordre spécifié dans le paramètre FIELD(), avec "core" en premier, "board" ensuite et "other" en dernier.

Seules les valeurs « Core » sont priorisées :

Si vous souhaitez uniquement prioriser "core" et ne vous souciez pas de l'ordre des autres valeurs :

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

L'ordre DESC garantira que la ligne « de base » vient en premier.

Combinez le tri personnalisé et le tri régulier :

Vous pouvez également combiner un tri personnalisé par « noyau » avec un tri régulier par d'autres champs :

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

Cela donnera la priorité aux lignes « principales », puis triera les lignes restantes par priorité.

Remarque :

  • Cette fonctionnalité est spécifique à MySQL.
  • FIELD() renvoie un index de base un où les valeurs manquantes donnent zéro.
  • L'ordre DESC est requis, sauf si vous spécifiez toutes les valeurs de champ possibles.

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