ホームページ >データベース >mysql チュートリアル >MySQL の IF() 関数を使用して SELECT ステートメントの列値を条件付きで調整するにはどうすればよいですか?
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 値の処理:
amount
が NULL
である可能性がある場合、堅牢な処理のために 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
: value
が NULL
(0) の場合に返される値。さらに読む:
MySQL フロー制御関数の詳細については、公式ドキュメントを参照してください: https://www.php.cn/link/0cfe3c931a81acba365b335768dd0d93
以上がMySQL の IF() 関数を使用して SELECT ステートメントの列値を条件付きで調整するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。