2009-06-04 29 views
0

我有一個MySQL表,我想提取所有的行,除非列中包含一個特定的值。這可能嗎?MySQL得到所有除了如果

我的表結構

+----+------+------+------+ 
| ID | col1 | col2 | col3 | 
+----+------+------+------+ 
| 1 | blah | blah | boo | 
+----+------+------+------+ 
| 2 | blah | blah | blah | 
+----+------+------+------+ 
| 3 | blah | blah | boo | 
+----+------+------+------+ 

所以,如果COL3包含噓聲,不提取:

+----+------+------+------+ 
| ID | col1 | col2 | col3 | 
+----+------+------+------+ 
| 2 | blah | blah | blah | 
+----+------+------+------+ 

回答

3

這當然有可能。下面的代碼應該做的伎倆

SELECT * FROM `table` WHERE `column` != "boo" 

如果你正在尋找一個以上列,比添加以下後記:對於每次你需要列

&& `column` != "boo" 

假設,當然,你的意思是你不想要噓。如果你只想噓,然後拿走感嘆號。

0

如果它等於 '噓' 以下排除COL3。

select * from mytable where col3 <> 'boo'

除此之外,我不知道你在找什麼。

+0

這不是我的意思。由於我的表的結構,這是不可能的。 – 2009-06-04 04:21:32

+2

@Ben:請發表你的表格結構的例子,以增加討論的潤滑性。 – bernie 2009-06-04 04:22:57

1

如果 「包含」 你的意思是 「等於」:

SELECT * FROM table WHERE column <> 'VALUE TO EXCLUDE' 

或者如果 「包含」 你從字面上的意思是 「含有」:

SELECT * FROM table WHERE column NOT LIKE '%VALUE TO EXCLUDE%' 

編輯 - 答案您更新的問題:

SELECT * FROM table WHERE col3 <> 'boo' 
0

select * from MyTable where col3 <>'boo'

0

如果您的數據和要求不簡單,您可以在where子句中使用正則表達式。

例如

SELECT * FROM foo WHERE bar REGEXP '[[:alnum:]]+'; 

SELECT * FROM foo WHERE bar NOT REGEXP '[[:alnum:]]+'; 
1
SELECT * FROM YourTable WHERE col3 != 'boo';