基本上我正试图建立一个制度
$query = "SELECT * FROM user WHERE role='H' OR role='F' AND department='CIVIL'";
Run Code Online (Sandbox Code Playgroud)
这是H mean的负责人.
和F意味着教师
现在,当我运行此查询时,这也会获取具有CSE部门的结果,现在我只想要CIVIL dep.
我怎么解决这个?
jue*_*n d 10
使用括号
SELECT * FROM user
WHERE (role='H' OR role='F')
AND department='CIVIL'
Run Code Online (Sandbox Code Playgroud)
因为AND它具有更强的绑定(优先级)OR.
如果没有括号,您的查询将是这样的
SELECT * FROM user
WHERE role='H'
OR (role='F' AND department='CIVIL')
Run Code Online (Sandbox Code Playgroud)
您的查询有一个布尔逻辑问题.它确实有效,它不会做你想要的.
最简单的解决方案是使用IN:
SELECT *
FROM user
WHERE role IN ('H', 'F') AND department = 'CIVIL';
Run Code Online (Sandbox Code Playgroud)
对未来的建议是,如果你有AND和OR相同WHERE,那么使用括号.