仅将唯一条目从一个表复制到另一个表

时间:2017-08-07 05:27:39

标签: mysql scheduled-tasks

我正在尝试为MySQL DB创建预定的自动更新程序。我使用的脚本如下所示。它的想法是只将表wp_posts中的唯一产品插入到表export_copy中。但这一个什么都不插入。 请帮我修复脚本。

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)

1 个答案:

答案 0 :(得分:0)

您的查询永远不会有效!

由于您的表名是" wp_posts" ,似乎你想要从wordpress表复制数据到你自己的

你可以通过php处理这个问题,你必须从表中获取数据并将其保存到数组中,然后导出数组以插入查询

$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);