Tri des données MySQL : prioriser les valeurs de champs spécifiques
Dans MySQL, si vous devez trier l'ensemble de résultats en fonction de valeurs de champ spécifiques et hiérarchiser certaines valeurs, vous pouvez utiliser la fonction FIELD
. Cette fonction permet de préciser l'ordre dans lequel les valeurs apparaissent dans les résultats triés.
Par exemple, considérons le tableau suivant :
id | name | priority |
---|---|---|
1 | core | 10 |
2 | core | 9 |
3 | other | 8 |
4 | board | 7 |
5 | board | 6 |
6 | core | 4 |
Pour trier les lignes par priorité tout en donnant la priorité aux lignes dont le champ "name" est égal à "core", vous pouvez utiliser la requête suivante :
<code class="language-sql">SELECT id, name, priority FROM mytable ORDER BY FIELD(name, "core", "board", "other")</code>
Cette requête garantit que les lignes dont le « nom » est défini sur « core » apparaissent en premier, quelle que soit leur valeur de priorité. La ligne avec "name" défini sur "board" vient ensuite, suivie de la ligne avec "name" défini sur "other".
Notez que si vous vous souciez uniquement de prioriser les lignes « principales » et que l'ordre des autres valeurs ne vous dérange pas, vous pouvez utiliser la requête suivante :
<code class="language-sql">SELECT id, name, priority FROM mytable ORDER BY FIELD(name, "core") DESC</code>
Dans ce cas, la ligne "core" apparaîtra en premier et les autres valeurs seront triées par ordre décroissant.
Enfin, si vous souhaitez d'abord trier par « noyau » puis appliquer l'ordre de tri normal aux autres champs, vous pouvez utiliser cette requête :
<code class="language-sql">SELECT id, name, priority FROM mytable ORDER BY FIELD(name, "core") DESC, priority</code>
N'oubliez pas que les fonctions FIELD
sont spécifiques à MySQL. De plus, il renvoie l'index de base zéro de la valeur. Si la valeur spécifiée ne figure pas dans la liste, zéro est renvoyé. Par conséquent, il est important de prendre en compte ces considérations lors de l'utilisation de la fonction FIELD
pour trier les données dans MySQL.
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!