我有一个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表
提前谢谢
答案 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
不确定这是否是您要找的。 p>
答案 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');