MySQL 値がnullのときや、計算によってカラムの値を変えたい(if, ifnull)

作成日:2019-05-17, 更新日:2023-06-22

対象

下記のような条件

▼テーブル:items

id name price
1 鳥精 120
2 豚精 120
3 丸ごとシマウマ 140

▼テーブル:details

id_items taste
1 塩、タレ
3

計算だったり条件で結果を変えたい(if)

select i.id,i.name, if( 120<i.price, '高い', '安い' )
from items i;

値が存在する・しない:値じゃなく真偽値が欲しい

select i.id,i.name,i.price
, if( d.taste is null, 0, 1 )
from items i
left join details d on i.id=d.id_items;

値が存在しないとき:NULLの代わりに別文字を表示させたい(ifnull)

select i.id,i.name,i.price
, ifnull( d.taste, '' )
from items i
left join details d on i.id=d.id_items;

関連項目

MySQLで条件分岐(if文的なことをする:case-when)