Сервер MySQL версии 5.0.45. Рассмотрим следующий пример:Обработка пустого набора в операторе MySQL CASE
(SELECT CASE
WHEN t.group_id = 12 THEN 'yes'
ELSE 'no'
END
FROM sample_table t
WHERE t.user_id = 2
AND t.group_id = 12) as foo
Этого подзапрос большего заявление работает, как я ожидал, не давая «да» или «нет» строкового значения большой части времени. Это не идеально, но это то, что вы получаете за работу над чужим кодом!
Однако иногда выбор может законно возвращать пустой набор, и в этом случае foo имеет значение NULL. Это фактически не нарушает приложение, но это раздражает. Есть ли способ гарантировать, что foo всегда будет «да» или «нет», даже если в таблице нет соответствующих строк?
Спасибо очень много! –