ホームページ >データベース >mysql チュートリアル >MySQL の IF() 関数を使用して SELECT ステートメントの列値を条件付きで調整するにはどうすればよいですか?

MySQL の IF() 関数を使用して SELECT ステートメントの列値を条件付きで調整するにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2025-01-20 21:51:11161ブラウズ

How Can I Use MySQL's IF() Function to Conditionally Adjust Column Values in a SELECT Statement?

SELECT ステートメントでの MySQL の IF() 関数による条件付きカラム値の調整

MySQL の SELECT ステートメントはデータを取得します。 場合によっては、同じ行内の他の列に基づいて列の出力を条件付きで変更する必要があります。 IF() 関数はこれを容易にします。

シナリオ:

report テーブルがあり、amount 列に基づいて type 列の符号を操作する必要があるとします。 type が 'P' の場合、amount は正の値でなければなりません。 「N」の場合、負の値にする必要があります。

初期クエリ:

<code class="language-sql">SELECT id, amount FROM report;</code>

条件変更:

IF() を使用して目的の条件調整を実現する方法は次のとおりです。

<code class="language-sql">SELECT id, 
       IF(type = 'P', amount, amount * -1) AS amount
FROM report;</code>

説明:

IF() 関数は 3 つのパラメータを取ります:

  • condition: 評価する条件 (type = 'P')。
  • true_value: 条件が true (amount) の場合に返される値。
  • false_value: 条件が false (amount * -1) の場合に返される値。

AS amount は、IF() 関数の結果に出力のエイリアス amount を割り当てます。

NULL 値の処理:

amountNULL である可能性がある場合、堅牢な処理のために IFNULL() を使用します。

<code class="language-sql">SELECT id, 
       IF(type = 'P', IFNULL(amount, 0), IFNULL(amount, 0) * -1) AS amount
FROM report;</code>

IFNULL() は 2 つの引数を取ります:

  • value: NULL (amount) をチェックする値。
  • default_value: valueNULL (0) の場合に返される値。

さらに読む:

MySQL フロー制御関数の詳細については、公式ドキュメントを参照してください: https://www.php.cn/link/0cfe3c931a81acba365b335768dd0d93

以上がMySQL の IF() 関数を使用して SELECT ステートメントの列値を条件付きで調整するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。