我是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个小时在线查看,无法找到解决方案。
答案 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。