2014-01-30 44 views
1

我有一個包含字符串的列的MySQL數據庫表。我有一個字符串列表。列表中的一些字符串可以在我的表中找到,而其他字符串則不能。見我TABLE表名:MySQL:顯示未找到結果中的字符串

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

如果我執行查詢

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

我得到兩排,其中僅僅包含NULL的結果。
如何查看哪些字符串是匹配?因爲我想將它們添加到數據庫表

THX提前

+1

不清楚。正確解釋。 –

+0

什麼是'字符串列表'在這裏? –

+0

字符串列表是'三','四','五','六'。 –

回答

0

我想你想的是,「三」,「四」,「五」,「六」如果有此字符串是不存在於你想識別的數據庫中。

使用查詢我認爲這將是艱難的。您可以使用下面的查詢來獲取可用的字符串和計數。然後,如果您使用的是編程語言,則可以確定結果中不存在哪個字符串,然後繼續下一步。

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

不知道這是你在找什麼。

+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,我相信你會得到更好的答案。

0

這不應該這樣。檢查下面的演示,以確保你的代碼是正確的。現在真正重要的是表中的一組數據。

DEMO

下面是DDL:

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