MySQL 服务器版本 5.0.45。考虑以下:
( 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
这个较大语句的子查询按我的预期工作,大部分时间产生一个“是”或“否”字符串值。这并不理想,但这就是你处理别人的代码所得到的!
但是,有时 select 可以合法地返回一个空集,在这种情况下 foo 被设置为 NULL。这实际上并没有破坏应用程序,但它很烦人。有没有一种方法可以保证 foo 始终为“是”或“否”,即使表中没有匹配的行?