mySQL“IN”函数返回未找到的列表

时间:2016-09-01 18:31:13

标签: mysql

只是想问一下这是否可行,或者是一种确定我桌子上不存在的字符串的方法。例如

从table_person中选择名称IN的名称('name1','name2','name3')

  • 场景是name1,name2在我的桌子上可用,但我想要显示的是name3,因为我想知道我还没有添加什么。

2 个答案:

答案 0 :(得分:2)

只是玩弄最坏的方法(可能)。

不推荐

SELECT 
 suppliedArgTable.name 
FROM 
(
 SELECT 'name1' AS name
 UNION 
 SELECT 'name2' 
 UNION 
 SELECT 'name3' 
) AS suppliedArgTable

LEFT JOIN 

table_person TP ON TP.name = suppliedArgTable.name 
WHERE TP.name IS NULL;

http://sqlfiddle.com/#!9/edcbe/2/0

答案 1 :(得分:0)

NOT IN结合反转您的查询是一种解决方案。

使用(临时)表格中的“列表”('name1','name2','name3'),例如temp_list 以及table_person中的数据 查询将是:

select name from temp_list 
where name not in (
    select distinct(name) from table_person
)

distinct删除了双打。 (另见MySQL: Select only unique values from a column