有时候我希望从数据库中拉取数据时能够获得一些较为复杂的信息,比如获取活动信息时还想知道当前用户是否参加了活动(需要再做一次查询才能判断),为了简化后台逻辑,避免查询两次获得两组结果再合并,我发现了CASE语句。

在查询中使用CASE:

SELECT 
CASE WHEN uid='admin' THEN 1
ELSE 0 END 
from users;

这段查询选择了CASE的结果,根据行(rows)是否满足WHEN的条件返回相应的结果。但如果有多个WHEN,返回的结果取决于最后一种满足的条件的返回值。