MySQLに三項条件演算子を実装します。 1つのフィールドIDが存在するテーブルがあります。その値はnullの場合があります。 id
を次のような三項条件付き形式で表示したい:
select id = id == null ? 0 : id;
MySQLで可能ですか?
これを試して :
select if(Id is null, 0, id) as Id;
ドキュメント はあなたの友達です。あなたはそれを読むべきです!
それは言います:
_IFNULL(expr1,expr2)
__
expr1
_がNULL
でない場合、IFNULL()
は_expr1
_を返します。それ以外の場合は、_expr2
_を返します。
そして、多くの例。これは、NULL
と比較する三項条件と、第2オペランドとして比較対象を使用するのと同じです。シンボル_?
_および_:
_を使用してそこに到達することは、実際には何にも関連していないことはありません。
だから、あなたの場合:
_SELECT IFNULL(`id`, 0) FROM `table`
_
3つのオペランドを明示的に提供したい場合(なぜ?!)、IF
に切り替えます。
_SELECT IF(`id` IS NULL, 0, `id`) FROM `table`
_
三項演算子と同じロジックを実装できる方法は2つあります。
IF
関数を使用します(例: IF(expression, true result, false result)
CASE
式を使用します(例:.
CASE WHEN expression THEN <true result> ELSE <false_result> END
NULLをチェックするときは、IFNULL
またはCOALESCE
関数を使用できます。
IFNULL(ID, 0)
COALESCE(ID, 0)