How to implement ternary conditional operator in MySQL
Solution 1:
Try this :
select if(Id is null, 0, id) as Id;
Solution 2:
The documentation is your friend; you should read it!
It says:
IFNULL(expr1,expr2)
If
expr1
is notNULL
,IFNULL()
returnsexpr1
; otherwise it returnsexpr2
.
And then lots of examples. This is equivalent to using a ternary conditional with a comparison to NULL
and the comparison subject as the second operand; that it doesn't happen to use the symbols ?
and :
to get you there is not really relevant to anything.
So, in your case:
SELECT IFNULL(`id`, 0) FROM `table`
If you're desperate to provide three operands explicitly (why?!), then switch to IF
:
SELECT IF(`id` IS NULL, 0, `id`) FROM `table`