MySQL:显示未找到的结果中的字符串

时间:2014-01-30 11:29:14

标签: mysql sql

我有一个MySQL数据库表,其中包含一个包含字符串的列。我有一个字符串列表。列表中的一些字符串可以在我的表中找到,其他字符串则不能。请参阅我的表TableName:

<TableName>
IntegerColumn, StringColumn
1, one
2, two
3, three
4, four

如果我执行查询

SELECT * FROM TableName WHERE StringColumn NOT IN ('three', 'four', 'five', 'six');

我得到两行的结果,除了NULL之外什么都没有 如何查看哪个字符串没有匹配?因为我想将它们添加到db表

提前谢谢

3 个答案:

答案 0 :(得分:1)

使用以下示例

CREATE TABLE sample_table 
    (
 id int auto_increment primary key,  
 details varchar(30)
 );

INSERT INTO sample_table
(id, details)
VALUES
(1, 'One'),
(2, 'Two'),
(3, 'Three'),
(4, 'Four'),
(5, 'Five');

我运行了查询

SELECT * FROM sample_table
WHERE details NOT IN ('two', 'three', 'nine');

给出了正确的输出:

1 One 
4 Four 
5 Five 

如果你已经返回了NULL,那么你的问题就没有解释。你能提供架构信息甚至是SQL Fiddle吗?我相信你会得到更好的答案。

答案 1 :(得分:0)

我认为你想要的是'三','四','五','六'如果你要识别的数据库中没有这个字符串中的任何一个。

使用查询我认为这很难。您可以使用以下查询来获取可用的字符串和计数。然后,如果您使用的是编程语言,则可以确定结果中不存在哪个字符串,然后继续进行。

SELECT StringColumn, count(*) FROM TableName group by StringColumn

不确定这是否是您要找的。

答案 2 :(得分:0)

这不应该这样。请检查以下演示以确保您的代码正确无误。现在真正重要的是表格中的数据集。

<强> DEMO

这是DDL:

create table tab1 (IntegerColumn int(2), StringColumn varchar(20));
insert into tab1 values(1, 'one'), (2, 'two'), (3, 'three'), (4, 'four');