Как реализовать тернарный условный оператор в MySQL



Я хочу реализовать тернарный условный оператор в MySQL. У меня есть таблица в которой одно поле id существует. Его значение может быть null. Я хочу показать id в троичном условном формате, как это:



select id = id == null ? 0 : id;


возможно ли это в MySQL?

987   3  

3 ответов:

попробуйте это :

select if(Id is null, 0, id) as Id;

документация - ваш друг; вы должны прочитать это!

он говорит:

IFNULL(expr1,expr2)

если expr1 - это не NULL,IFNULL() возвращает expr1; в противном случае она возвращает expr2.

а потом много примеров. Это эквивалентно использованию троичного условного выражения со сравнением с NULL и предмет сравнения как второй операнд; что он не использует символы ? и : to получить вас там на самом деле не имеет отношения ни к чему.

так, в вашем случае:

SELECT IFNULL(`id`, 0) FROM `table`

если вы отчаянно хотите предоставить три операнда явно (почему?!), затем переключитесь на IF:

SELECT IF(`id` IS NULL, 0, `id`) FROM `table`

существует два способа реализации той же логики, что и тернарный оператор:

  1. использовать

Comments

    Ничего не найдено.