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私のために働きます。