Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MYSQL If条件如果then值为0则不显示_Mysql_Sql - Fatal编程技术网

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
。。它工作得很好!!请发布要接受的答案:)