MySQLに三項条件演算子を実装したいと思います。1つのフィールドIDが存在するテーブルがあります。その値はnullの可能性があります。次のid
ような3項条件形式で表示したい:
select id = id == null ? 0 : id;
MySQLで可能ですか?
MySQLに三項条件演算子を実装したいと思います。1つのフィールドIDが存在するテーブルがあります。その値はnullの可能性があります。次のid
ような3項条件形式で表示したい:
select id = id == null ? 0 : id;
MySQLで可能ですか?
回答:
これを試して :
select if(Id is null, 0, id) as Id;
null
またはをチェックする必要が''
あり0
ます。mySQLは時々
ドキュメントはあなたの友達です。あなたはそれを読むべきです!
それは言う:
IFNULL(expr1,expr2)
そう
expr1
でない場合はNULL
、;をIFNULL()
返しますexpr1
。それ以外の場合はを返しますexpr2
。
そして、たくさんの例。これはNULL
、比較対象を第2オペランドとして、比較対象を含む3項条件を使用するのと同じです。シンボルを使用することは起こらないということ?
と、:
何に本当に関連がないあなたを取得します。
だから、あなたの場合:
SELECT IFNULL(`id`, 0) FROM `table`
3つのオペランドを明示的に提供する必要がある場合(なぜ?!)、次のように切り替えIF
ます。
SELECT IF(`id` IS NULL, 0, `id`) FROM `table`
CASE WHEN id IS NULL THEN 0 ELSE id END
IFNULL
、より簡潔です。
IF
のではなく、IFNULL
またはCOALESCE
私は別のベンダーのデータベースにデータを移行していますのでと、null以外の値をインポートするだけで、一般的な状況として、それを解釈する必要はありません。SELECT IF(a.cancellationReason IS NOT NULL, 'C', 'A')) as appointment_status
私のために働きます。