MySql PHP查询来过滤现有csv中的名称

时间:2014-10-30 15:07:23

标签: php mysql

我在csv字符串中有一个名字列表。其中一些名称可能存在于我的数据库中的表中。 我需要创建一个查询/ proc。这将返回表中不存在的名称列表。

例如,如果我的CSV是

bob,frank,tod

,表格包括

bob 
frank

我需要查询返回tod。

我熟悉SQL服务器而不是MySql我知道如何用SQL服务器做这个,只需要一些指导就可以用mySQL / PHP完成这个工作

2 个答案:

答案 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)