ホームページ >データベース >mysql チュートリアル >CASE 式はどのようにして SQL 結果を特定の値で並べ替えることができるのでしょうか?
CASE 式を使用して SQL 結果を特定の値で並べ替えます
テーブルからデータを取得する場合、多くの場合、複数の値に基づいて結果を特定の順序で並べ替える必要があります。この場合のタスクは、指定されたキーとインデックスのないフィールドに基づいてテーブルからレコードを抽出し、結果を特定の順序の複数の値で並べ替えることです。
この要件を満たすために、従来の ORDER BY 構文を使用する代わりに CASE 式を使用して、目的の順序付けを実現できます。 CASE 式の構文は次のとおりです:
<code class="language-sql">CASE WHEN condition1 THEN value1 WHEN condition2 THEN value2 ... ELSE valueN END</code>
この例では、CASE 式を使用して、x_field の各値に特定の順序を割り当てます。たとえば、値「f」、「p」、「i」、「a」には、それぞれシーケンス番号 1、2、3、4 が割り当てられます。これらの特定の値と一致しないその他の値には、デフォルトのシーケンス番号 5 が割り当てられます。
CASE 式を 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>
CASE 式を使用すると、結果は割り当てられたシーケンス番号に従って並べ替えられ、指定されたシーケンス内の値 'f'、'p'、'i'、'a' が効果的に並べ替えられます。
以上がCASE 式はどのようにして SQL 結果を特定の値で並べ替えることができるのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。