Maison >base de données >tutoriel mysql >Comment une expression CASE peut-elle trier les résultats SQL par valeurs spécifiques ?
Utilisez les expressions CASE pour trier les résultats SQL par valeurs spécifiques
Lors de la récupération des données d'une table, vous devez souvent trier les résultats en fonction de plusieurs valeurs dans un ordre spécifique. Dans ce cas, la tâche consiste à extraire les enregistrements d'une table en fonction de clés spécifiées et de champs non indexés et à trier les résultats selon plusieurs valeurs dans une séquence spécifique.
Pour répondre à cette exigence, une expression CASE peut être utilisée pour obtenir l'ordre souhaité au lieu d'utiliser la syntaxe ORDER BY traditionnelle. La syntaxe de l'expression CASE est la suivante :
<code class="language-sql">CASE WHEN condition1 THEN value1 WHEN condition2 THEN value2 ... ELSE valueN END</code>
Dans cet exemple, l'expression CASE est utilisée pour attribuer un ordre spécifique à chaque valeur dans x_field. Par exemple, les valeurs « f », « p », « i » et « a » reçoivent respectivement les numéros de séquence 1, 2, 3 et 4. Toutes les autres valeurs qui ne correspondent pas à ces valeurs spécifiques se verront attribuer le numéro de séquence par défaut 5.
Voici un exemple de la façon dont une expression CASE peut être ajoutée à une requête SQL :
<code class="language-sql">SELECT * FROM table WHERE x_field IN ('f', 'p', 'i', 'a') ORDER BY CASE x_field WHEN 'f' THEN 1 WHEN 'p' THEN 2 WHEN 'i' THEN 3 WHEN 'a' THEN 4 ELSE 5 -- 对不在IN子句中的值(例如:x_field = 'b')的回退值 END, id</code>
En utilisant une expression CASE, les résultats seront triés en fonction du numéro de séquence attribué, triant efficacement les valeurs 'f', 'p', 'i' et 'a' dans l'ordre spécifié.
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!