MYSQL If条件如果then值为0则不显示
我的问题是MYSQL If条件如果then值为0则不显示,mysql,sql,Mysql,Sql,我的问题是 SELECT mm.module_id, mm.module_name, pm.permission_id, pm.permission_name, CASE WHEN rp.permission_id is not null THEN false ELSE true END AS status FROM permission_master AS pm LEFT OUTER JOIN role_permission AS rp ON
SELECT
mm.module_id, mm.module_name,
pm.permission_id, pm.permission_name,
CASE WHEN rp.permission_id is not null
THEN false ELSE true END AS status
FROM permission_master AS pm
LEFT OUTER JOIN role_permission AS rp
ON pm.permission_id = rp.permission_id AND rp.RoleID = 1
LEFT OUTER JOIN module_master AS mm
ON pm.module_id = mm.module_id
ORDER BY mm.module_id, pm.permission_id
它返回值,根据查询中的给定条件,状态将为0和1。
我需要的是它不应该返回状态为0的冒号
我该怎么做?您可以在查询中添加where子句,如下所示
select mm.module_id, mm.module_name, pm.permission_id,
pm.permission_name,
case when rp.permission_id is not null then false else true end as status
from permission_master as pm
left outer join role_permission as rp on pm.permission_id = rp.permission_id
and rp.RoleID = 1
left outer join module_master as mm on pm.module_id = mm.module_id
where rp.permission_id is null
order by mm.module_id, pm.permission_id
您只需将having子句添加为
在order by子句之前具有status=1
select
mm.module_id,
mm.module_name,
pm.permission_id,
pm.permission_name,
case
when rp.permission_id is not null then false
else true
end as status
from permission_master as pm
left outer join role_permission as rp on pm.permission_id = rp.permission_id and rp.RoleID = 1
left outer join module_master as mm on pm.module_id = mm.module_id
having status = 1
order by mm.module_id, pm.permission_id
如果您不想显示0状态,则在order by子句之前添加
having status=1
。。它工作得很好!!请发布要接受的答案:)