select * ,
case when menuid in(select menuid from roles_menus where roleid=2)
then 1
else 0
end as checked
from menus
对查询列进行重命名,等同于='checked'
首先解释一下 as checked ,其中as是关键字,固定不变,checked是个任意值,一般作为字段的别名,如下图解析
再解释整个句子,这个句子是有错误的,要么把 *,去掉,要么把 "case when menuid in(select menuid from roles_menus where roleid=2) then 1 else 0 end as checked"去掉,不然会报
"未找到要求的FROM关键字"错误,若改成 "select
case when menuid in(select menuid from roles_menus where roleid=2)
then 1
else 0
end as checked
from menus"
这条sql有子查询,解析看下图