比较CSV文件中1列中的值与1列中的MySQL值,并在PHP中删除

时间:2013-03-30 16:58:50

标签: php mysql sql csv compare

我是mysql和php的新手,在http://answers.yahoo.com/question/index?qid=20080717110807AAsXkGL找到了类似的功能:

但是这段代码比较mysql vs mysql:

第一个表t1中的3列:第一个,最后一个,电子邮件。 t2中的列相同。

DELETE FROM t1 WHERE t1.email IN (SELECT t2.email from t2)

但是,如果名称值出现在A列(名称)的CSV文件中,我需要一个PHP代码,它将从names列的MySQL表中删除整行。

提前感谢您的帮助!我已经花了4个小时在线查看,无法找到解决方案。

2 个答案:

答案 0 :(得分:0)

tmpArray

创建结果的数组SELECT t2.email from t2

并做这样的事情:

$in = implode(',', $tmpArray);

DELETE FROM t1 WHERE t1.email IN ($in)

答案 1 :(得分:0)

以下是那些正在寻求的人的完整答案:

$dbhost = "localhost";
$dbuser = "root";
$dbpass = "root";

$dbname = "yourdatabase";

$link = mysql_connect($dbhost, $dbuser, $dbpass);

$lines =file('active.csv');
foreach($lines as $line){
$na[]=trim($line);
}

$in=implode(',',$na);


$query = "DELETE FROM table1 WHERE t2.value IN ($in)";
$del=mysql_query($query,$link);

如果要在表1中删除整个行(如果CSV文件中不存在该值),请将查询更改为:

    $query = "DELETE FROM table1 WHERE t2.value NOT IN ($in)";

重要说明:CSV文件中的标题不应出现,否则此脚本将删除整个表1。