MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

MySQLのIF()関数とは?構文と使い方を実例付きで解説

MySQLのIF()関数は、条件に基づいて異なる値を返すことができる制御フロー関数の一つです。「IF ELSE」や「IF THEN ELSE」関数と呼ばれることもあります。基本的な動作としては、3つの引数を受け取り、最初の引数(条件式)がTRUE(0ではなく、かつNULLでもない)と評価された場合には2番目の引数を返し、それ以外の場合には3番目の引数を返します。

基本構文

IF(expr, value_if_true, value_if_false)

各引数の意味は以下の通りです。

  • expr:評価対象となる条件式です。
  • value_if_true:exprがTRUEと評価された場合に返される値です。
  • value_if_false:exprがFALSEと評価された場合に返される値です。

使用例

まず、条件がTRUEになるケースを見てみましょう。

mysql> Select IF(100=100,'YES','NO');
+------------------------+
| IF(100=100,'YES','NO') |
+------------------------+
| YES                    |
+------------------------+
1 row in set (0.00 sec)

「100=100」は真であるため、2番目の引数である「YES」が返されています。次に、条件がFALSEになるケースです。

mysql> Select IF(100=200,'YES','NO');
+------------------------+
| IF(100=200,'YES','NO') |
+------------------------+
| NO                     |
+------------------------+
1 row in set (0.00 sec)

「100=200」は偽であるため、3番目の引数である「NO」が返されました。

NULLの扱いに注意

IF()関数では、条件式がNULLと評価された場合もFALSEとして扱われる点に注意が必要です。つまり、value_if_falseが返されます。例えば次のようなケースです。

mysql> Select IF(NULL,'YES','NO');
+---------------------+
| IF(NULL,'YES','NO') |
+---------------------+
| NO                  |
+---------------------+
1 row in set (0.00 sec)

実務での活用シーン

IF()関数は、SELECT句の中でデータの表示を切り替えたり、UPDATE文で条件に応じた値を設定したりする際によく使われます。例えば、在庫数に応じてステータス文字列を出力するクエリは以下のように書けます。

SELECT name, IF(stock > 0, '在庫あり', '在庫切れ') AS status
FROM products;

また、より複雑な多分岐の条件分岐が必要な場合は、CASE式を使うと可読性が高くなります。単純な二択の分岐であればIF()関数、複数条件の判定にはCASE式、というように使い分けるのがおすすめです。

  1. ネットワークセキュリティの仕組みとは?種類・脅威・基本原則を徹底解説

    ネットワークセキュリティは、現代のビジネスや日常生活において欠かせない存在となっています。不正アクセスやマルウェア、サイバー攻撃など、さまざまな脅威からネットワークを守り、組織の重要なデータや資産を安全に保つために不可欠です。本記事では、ネットワークセキュリティの基本的な仕組みから、主な種類、代表的な脅威、そして実践的な対策までをわかりやすく解説します。ネットワークセキュリティとは?ネットワークセキュリティとは、ネットワークの可用性(利便性)と完全性(インテグリティ)を保護するための一連の技術・対策のことです。これにより、多様な潜在的な脅威がネットワークに侵入したり、ネットワーク内で拡散したり

  2. データスクレイピングの仕組みを徹底解説!自動化の基本と始め方

    この記事を読んでいるということは、データスクレイピングのメリットについてすでに耳にしたことがあるかもしれません。自動化された技術を活用すれば、面倒な手作業なしに大量のデータを収集できる――そんな話です。では、データスクレイピングは実際にどのように機能するのでしょうか?難易度は高いのか、それとも誰でも習得できるのでしょうか?純粋な好奇心から知りたい方もいれば、自分のビジネスや副業に活用できるかどうか検討している方もいるでしょう。いずれにしても、この記事を読み終える頃には、データスクレイピングの概要、スクレイピングプロセスの実際の仕組み、そして始め方まで、しっかりと理解できるようになっています。そ