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 :
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!