2017-08-07 66 views
0

我正在嘗試爲MySQL DB創建預定的自動更新程序。下面顯示了我使用的腳本。它的主意是隻將表wp_posts中的唯一產品插入到表export_copy中。但是這個沒有插入任何東西。 請幫我解決腳本。僅將一個表中的唯一條目複製到另一個MySQL

INSERT INTO `export_copy`(`name`, `link`) 
 
SELECT p.post_title, p.guid 
 
FROM wp_posts p 
 
WHERE NOT EXISTS (
 
    SELECT * 
 
    FROM export_copy, wp_posts 
 
    WHERE export_copy.id=wp_posts.ID)

+0

見https://meta.stackoverflow.com/questions/333952/why-should-i-provide-an-mcve-for-what-seems-to-me-to -be-a-very-simple-sql-query – Strawberry

回答

0

您的查詢行不通!

由於您的表的名稱是「wp_posts」,似乎要從WordPress的表的數據複製到自己的

您可以通過PHP處理這個問題,firt必須從表中提取數據並保存到一個數組,然後出口陣列插入查詢

$link = mysqli_connect(Your_HOST , Your_User , YOUR_Pass, DB_NAME); 
$q = "SELECT p.post_title, p.guid FROM wp_posts p WHERE NOT EXISTS (SELECT * FROM export_copy, wp_posts WHERE export_copy.id=wp_posts.ID)"; 
$result = mysqli_query($link, $q); 
$i=0; 
while($row=mysqli_fetch_assoc($result)) 
{ 
    $a[$i]['name'] = $row['post_title']; 
    $a[$i]['link'] = $row['post_title']; 
    $i++; 
} 
$q = ''; 
foreach($a as $a) 
    $q .= "('".$a['name']."','".$a['link']."'),"; 

$q = substr($q,0, (strlen($q)-1)); 
$q = "INSERT INTO `export_copy`(`name`, `link`) VALUES " . $q; 
$result = mysqli_query($link, $q); 
+0

廢話。沒有必要先選擇任何東西。事實上,這樣做可能會適得其反。 – Strawberry

+0

親愛的草莓,使用選擇可以減少嵌套選擇在SQL中,這只是一個解決方案的PHP,因爲問題是關於一個WordPress的問題,如果你有關於SQL解決方案的想法,請分享這裏,謝謝 –

+0

恐怕沒有什麼你的評論是有道理的。繼續這個對話似乎是徒勞的 – Strawberry

相關問題