MySQL 条件付きクエリ: CASE 式の使用
SQL クエリを使用する場合、多くの場合、特定の条件に基づいて条件付きの決定を行う必要があります。 MySQL では、これは CASE 式を使用して実現できます。これは、条件を評価し、結果に基づいてさまざまな値を返す構造化された方法を提供します。
MySQL の IF ELSE ステートメント
MySQL クエリ内で IF ELSE ステートメントを実装する方法に関して疑問が生じます。クエリ ステートメント内の IF アクションで mysql_query() 関数を使用することは、適切なアプローチではありません。
CASE 式
代わりに、MySQL は CASE 式を利用して条件ステートメントを処理します。これらは特定の構文に従います:
CASE WHEN condition1 THEN value1 WHEN condition2 THEN value2 ... ELSE default_value END
各 WHEN 句は、true の場合に対応する値を返す条件を表します。どの条件も満たされない場合、ELSE 句はデフォルト値を提供します。
例
質問に示されている例を考えてみましょう:
SELECT col1, col2, ( CASE WHEN (action = 2 AND state = 0) THEN 1 ELSE 0 END ) AS state FROM tbl1;
このクエリでは、CASE 式を使用して state という名前の新しい列を計算します。アクションが 2 に等しく、状態が 0 に等しい場合、結果は 1 です。それ以外の場合は、0 を返します。
このクエリの結果には、row['state'] 構文を使用してアクセスできます。質問で示唆されているように。ただし、CASE 式は結果セット内の新しい状態列に値を割り当てるだけであることに注意することが重要です。データベーステーブルは直接変更されません。
以上がCASE 式を使用して MySQL クエリに IF-ELSE ロジックを実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。