为什么mysql显示输出错误?

时间:2017-10-19 04:38:26

标签: mysql sql

Mysql查询

SELECT * FROM `jobc_labor` WHERE type='Workshop' AND  RO_no='4' AND (status!='Job Not Done' OR status!='Jobclose')   

Result

也试过

SELECT * FROM `jobc_labor` WHERE type='Workshop' AND  RO_no='4' GROUP BY `RO_no` HAVING status!='Job Not Done' OR status!='Jobclose'

并尝试使用<>但结果相同

SELECT * FROM `jobc_labor` WHERE type='Workshop' AND  RO_no='4' AND (status<>'Job Not Done' OR status<>'Jobclose') 

我的问题是为什么mysql给出我的输出行的状态为'job Not Done and Jobclose ???我做错了什么。我想写一个查询,检查所有劳动力类型与车间有工作关闭或工作没有完成或他们是空的,这意味着工作正在进行中。请帮忙。

2 个答案:

答案 0 :(得分:1)

您的状态:

AND (status!='Job Not Done' OR status!='Jobclose')

总是正确的,因为当状态相同时“作业未完成”&#39;然后状态不等于&#39; Jobclose&#39;反之亦然。

您可以将其更改为:

AND status!='Job Not Done' 
AND status!='Jobclose'

或使用NOT IN:

AND status NOT IN ('Job Not Done', 'Jobclose')

答案 1 :(得分:0)

尝试此查询:

SELECT * FROM `jobc_labor` 
WHERE type='Workshop' AND  RO_no='4' AND status not in ('Job Not Done','Jobclose');

当你放or时,你需要更加小心。