SQL不等于也不等于操作员使用

时间:2018-09-05 06:43:02

标签: mysql sql

我需要从下表中选择处于状态5而不处于状态4的macs。 enter image description here

我使用了这个查询

select mac from tableabc where state=5 and state !=4;

,但结果与

相同

enter image description here

where state=5

5 个答案:

答案 0 :(得分:1)

一种方法使用条件聚合:

select mac
from tableabc
where state in (4, 5)
having min(state) = 5;

如果state的值不是“有序的”,则可以添加and min(state) = max(state)

答案 1 :(得分:1)

最干净的方法是在此处使用不存在:

opam

答案 2 :(得分:0)

禁止使用

select mac from tableabc
where state=5
and mac not in ( select mac from tableabc where state=4)

答案 3 :(得分:-1)

请尝试这个。

从tableabc中选择mac,其中状态为(5)

答案 4 :(得分:-1)

您可以使用以下查询

查询1(由于状态字段中只有一个值,因此无需检查4即可,只需检查5):

从tableabc中选择mac,其中state = 5

查询2:

从TableABC T1 WHERE T1.State = 5中选择Mac   并且不存在(从TableABC中选择* T2.Mac = T1.Mac AND T2.State = 4)

查询3:

从tableabc中选择mac,其中state = 5 和 mac不在(从tableabc中选择state为4的mac)