我在csv字符串中有一个名字列表。其中一些名称可能存在于我的数据库中的表中。 我需要创建一个查询/ proc。这将返回表中不存在的名称列表。
例如,如果我的CSV是
bob,frank,tod
,表格包括
bob
frank
我需要查询返回tod。
我熟悉SQL服务器而不是MySql我知道如何用SQL服务器做这个,只需要一些指导就可以用mySQL / PHP完成这个工作
答案 0 :(得分:2)
将您的CSV转换为如下表格:
SELECT 'bob' AS name
UNION
SELECT 'frank' AS name
UNION
SELECT 'tod' AS name
然后,您可以使用LEFT JOIN
查找此表中不在实际表中的元素:
SELECT t1.name
FROM (
SELECT 'bob' AS name
UNION
SELECT 'frank' AS name
UNION
SELECT 'tod' AS name
) AS t1
LEFT JOIN yourTable AS t2 ON t1.name = t2.name
WHERE t2.name IS NULL
答案 1 :(得分:0)
创造一个临时。 mysql中的表并导入整个csv。 然后查询两个表。 类似的东西:
select *
from a
where a.name not in (select b.name from b)