2011-06-16 67 views
0
SELECT * FROM table WHERE id != 4; 
SELECT * FROM table WHERE NOT id = 4; 
SELECT * FROM table WHERE id <> 4; 

我已经有了这个工作,但我还必须选择另一个字段(或多个字段)来决定返回哪些行。选择除MySQL两个字段以外的所有行

我该如何得到这个工作?

+3

你已经使用*选择所有字段 - 所以我不清楚你的问题是什么。如果您询问了检查不平等的三种方法之间的差异,请参阅此答案:http://stackoverflow.com/questions/7884/testing-for-inequality-in-t-sql – kinakuta 2011-06-16 04:14:02

+0

'NOT id = 4;'o_O – zerkms 2011-06-16 04:15:02

+0

你的问题的措辞有点不清楚,所以我试图澄清。请让我知道,如果我塞满了它,所以它可以修复。 – paxdiablo 2011-06-16 04:21:39

回答

1

如果你想其中两个条件都满足(ID1是4和ID2为7),使用类似以“取消”列:

select * from TBL where ID1 <> 4 or ID2 <> 7; 

ID1 ID2 selected 
--- --- -------- 
4 7  no 
4 1  yes 
1 7  yes 
1 1  yes 

如果你想“取消”列,其中任一条件为真(ID1为4或ID2是7),使用这样的:

select * from TBL where ID1 <> 4 and ID2 <> 7; 

ID1 ID2 selected 
--- --- -------- 
4 7  no 
4 1  no 
1 7  no 
1 1  yes 

这可以被扩展到多个条件简单地通过将它们添加到where子句的端部(和改变0文中的至all/any)。

+1

'这两个条件都是真的'暗示'和' – zerkms 2011-06-16 04:16:00

+2

@zerk:除了我们选择它们,不选择它们 - 反转条件 - 我会添加真值表来澄清。 – paxdiablo 2011-06-16 04:17:12

+0

我会接受这个答案,因为我有这个想法,非常感谢你。尽管我已经发布了对我的问题的回答。 – woninana 2011-06-16 04:27:21

0

从相册中选择* idAlbum!= 4和idAlbum!= 8我只是解决了我的问题。谢谢你们的帮助!

相关问题