MySQL获取除以外的所有内容

时间:2009-06-04 04:18:25

标签: mysql linq-to-sql

我有一个MySQL表,我想提取所有行,除非列包含特定值。这可能吗?

我的表结构

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

因此,如果col3包含boo,请不要提取:

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

6 个答案:

答案 0 :(得分:3)

这当然是可能的。以下代码应该可以解决问题

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

如果您要查看多个列的位置,请添加以下后续字词:

&& `column` != "boo"

为您需要的每一列。

当然,假设你的意思是你不想要嘘声。如果你只想要嘘声,那就拿走感叹号。

答案 1 :(得分: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'

答案 2 :(得分:1)

SELECT * FROM YourTable WHERE col3 != 'boo';

答案 3 :(得分:0)

如果col3等于'boo',则以下排除col3。

select * from mytable where col3 <> 'boo'

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

答案 4 :(得分:0)

从MyTable中选择*,其中col3&lt;&gt; 'BOO'

答案 5 :(得分:0)

如果列数据和要求不简单,可以在where子句中使用正则表达式。 e。

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

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