MySQLでの三項演算子の実装方法


MySQLでは、三項条件演算子を直接的にサポートしていませんが、条件に基づいて値を選択するためにIF関数を使用することができます。以下に、IF関数を使用して三項条件演算子を実現する方法をいくつか示します。

方法1: IF関数を使用する IF関数は、指定した条件が真の場合には第2引数の値を、偽の場合には第3引数の値を返します。これを利用して、三項条件演算子をエミュレートすることができます。

例えば、以下のようなテーブルがあるとします。

CREATE TABLE users (
  id INT,
  age INT,
  name VARCHAR(100)
);

このテーブルの中から、ageが18以上の場合には"成人"と表示し、それ以外の場合には"未成年"と表示するクエリを作成する場合、以下のようにIF関数を使用します。

SELECT id, name, IF(age >= 18, '成人', '未成年') AS status
FROM users;

このクエリは、ageが18以上の場合には"成人"、それ以外の場合には"未成年"という値をstatusというカラムに返します。

方法2: CASE文を使用する IF関数以外にも、CASE文を使用して三項条件演算子を実現することもできます。CASE文は、条件に基づいて値を選択するために使用されます。

以下は、CASE文を使用して三項条件演算子を実現する例です。

SELECT id, name,
  CASE
    WHEN age >= 18 THEN '成人'
    ELSE '未成年'
  END AS status
FROM users;

このクエリも、ageが18以上の場合には"成人"、それ以外の場合には"未成年"という値をstatusというカラムに返します。

以上が、MySQLでの三項条件演算子の実装方法です。IF関数やCASE文を使用することで、条件に基づいて値を選択することができます。