2013-03-30 74 views
-1

我新的MySQL和PHP和http://answers.yahoo.com/question/index?qid=20080717110807AAsXkGL發現了類似的功能:比較值與MySQL值文件中的1列,並刪除PHP

但是這個代碼的MySQL比較MySQL的VS:

第一張表中的3列t1:第一個,最後一個,電子郵件。 t2中的相同列。

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

不過,我需要一個PHP代碼,會從MySQL表中names列刪除整行如果名稱值出現在列A(地名)CSV文件。

在此先感謝您的幫助!我已經花了4個小時在網上查找並找不到解決方案。

+2

。 。將數據加載到數據庫中的臨時表中,然後使用數據庫函數執行操作。 –

+0

如果爲此目的配置Mysql,Mysql支持將CSV文件作爲後端存儲,但無法直接從CSV文件設置數據庫。你必須通過通常的方式(即外部腳本)導入它,所以你最好還是用高效的數據庫引擎來完成它,然後從那裏開始工作。 – didierc

回答

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

0

建立從SELECT t2.email from t2

結果數組tmpArray,做這樣的事情:

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

DELETE FROM t1 WHERE t1.email IN ($in) 
相關問題