MySQL如果条件where条款查询
问题描述:
我有一个表如下所示,并显示一个USR表是用户是管理员或普通用户。在这种情况下USR_ID:图1是作为管理员MySQL如果条件where条款查询
EMP_ID Terminated EMP_Name EMP_Loc
1 0 John Caster
2 1 Sally Jules
3 0 Steven James
这是一个EMP分贝表和EMP#2被终止,当一个普通用户查询DB中,封端的员工不应该被示出并且在管理员询问DB,我想显示所有员工,包括终止的员工。
这里是我的查询
select * from EMP join USR on USR.ID = EMP.EMP_ID
where (IF USR.ID = '1',terminated='1',terminated in ('0','1'))
但此查询只显示未终止的用户始终即使是管理员用户
答
你可以使用或在您的WHERE条件,像
select * from EMP join USR on USR.ID = EMP.EMP_ID
where (USR.ID = '1' and terminated='1') or (USR.ID <> '1' and terminated in ('0','1'))
答
SELECT *
FROM EMP
INNER JOIN USR ON USR.ID = EMP.EMP_ID
WHERE
(USR.ID = '1' AND Terminaded = '1') OR (USR.ID <> '1')
答
根据您的要求,您可以试试这个:
select *
from EMP join USR on USR.ID = EMP.EMP_ID
where (USR.ID <> '1' and Terminated = '1') or (Terminated in ('0', '1'))
如果Terminated
只有两个值 '0' 或 '1',你可以删除or
条款:
select *
from EMP join USR on USR.ID = EMP.EMP_ID
where (USR.ID <> '1' and Terminated = '1')
你能守USR表模式? – McNets