Вы смотрите на MySQL IF()
функцию .По сути, это троичный оператор в логическом выражении, представленном в аргументе 1. (По вашему вопросу вы поняли, что делает COALESCE.)
- Если expr1 равен TRUE (expr1 <> 0 и expr1<> NULL) затем IF () возвращает expr2;
- Если expr1 равен FALSE, он возвращает expr3.
IF()
возвращает числовое или строковое значение в зависимости от контекста, в котором оно используется.
mysql> SELECT IF(1>2,2,3);
-> 3
mysql> SELECT IF(1<2,'yes','no');
-> 'yes'
mysql> SELECT IF(STRCMP('test','test1'),'no','yes');
-> 'no'
Это действительно забавный нечитаемый способ не использовать a.entity_id IS NULL
.