MySQLに三項条件演算子を実装したいと思います。私は1つのフィールドIDが存在するテーブルを持っています。その値はnullでもかまいません。私はこのような三条件付書式でid
を表示したい:MySQLで三項条件演算子を実装する方法
select id = id == null ? 0 : id;
は、MySQLで、それは可能ですか?
MySQLに三項条件演算子を実装したいと思います。私は1つのフィールドIDが存在するテーブルを持っています。その値はnullでもかまいません。私はこのような三条件付書式でid
を表示したい:MySQLで三項条件演算子を実装する方法
select id = id == null ? 0 : id;
は、MySQLで、それは可能ですか?
はこれを試してみてください。
select if(Id is null, 0, id) as Id;
The documentationはあなたの友人です。あなたはそれを読むべきです!
それは言う:
IFNULL(expr1,expr2)
expr1
は、IFNULL()
戻りexpr1
NULL
されていない場合。それ以外の場合はexpr2
を返します。
そして多くの例。これは、第2オペランドとして比較対象をNULL
と比較した3値条件を使用することと同等です。 ?
と:
のシンボルを使用して実際には何の関係もないことはありません。
だから、あなたのケースでは:あなたが明示的に(なぜ?)3つのオペランドを提供するために必死なら
SELECT IFNULL(`id`, 0) FROM `table`
は、その後、IF
に切り替える:
SELECT IF(`id` IS NULL, 0, `id`) FROM `table`
+1ですが、質問に答えるには: 'IDがNULLの場合は0 ELSE id END' –
@ MichaelKrelin-hacker:同じこと、いいえ?そして、「IFNULL」は軽いです。 –
@ MichaelKrelin-hacker:ああ、私はそれを手に入れます。 –
三項演算子と同じロジックを実装できる方法は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)
[あなたはMySQLのSELECT文での条件付き書くにはどうすればよい?](の
可能重複http://stackoverflow.com/questions/1647961/how-do-you-write-a-conditional-in- a-mysql-select-statement) –