2016-12-26 56 views
0

我想从我的WordPress网站 删除重复的职位选择重复的岗位工作currectlly删除重复的帖子在WordPress

SELECT a.ID, a.post_title, a.post_type, a.post_status 
    FROM wp_posts AS a 
     INNER JOIN (
      SELECT post_title, MIN(id) AS min_id 
      FROM wp_posts 
      WHERE post_type = 'post' 
      AND post_status = 'publish' 
      GROUP BY post_title 
      HAVING COUNT(*) > 1 
     ) AS b ON b.post_title = a.post_title 
    AND b.min_id <> a.id 
    AND a.post_type = 'post' 
    AND a.post_status = 'publish' 

this query that i need has error 
    DELETE a.* 
    FROM wp_posts AS a 
     INNER JOIN (
      SELECT post_title, MIN(id) AS min_id 
      FROM wp_posts 
      WHERE post_type = 'post' 
      AND post_status = 'publish' 
      GROUP BY post_title 
      HAVING COUNT(*) > 1 
     ) AS b ON b.post_title = a.post_title 
    AND b.min_id <> a.id 
    AND a.post_type = 'post' 
    AND a.post_status = 'publish' 

这是错误消息:

意外标记(接近a)意外标记(接近。)意外标记 (接近*)

+0

请标记正确使用的RDBMS .....语法可能会有所不同? – Susang

回答

0

第一个SELECT发帖ID。然后使用DELETE声明与WHERE IN子句。

注意:在执行整个查询之前,测试IN()子句中的子查询是否返回正确的ID。

DELETE FROM wp_posts 
WHERE ID IN (
    SELECT a.ID 
    FROM wp_posts AS a 
     INNER JOIN (
      SELECT post_title, MIN(id) AS min_id 
      FROM wp_posts 
      WHERE post_type = 'post' 
      AND post_status = 'publish' 
      GROUP BY post_title 
      HAVING COUNT(*) > 1 
     ) AS b ON b.post_title = a.post_title 
    AND b.min_id <> a.id 
    AND a.post_type = 'post' 
    AND a.post_status = 'publish' 
) 
+0

这个错误 MySQL说:文档 #1064 - 你的SQL语法有错误;检查与您的MySQL服务器版本相对应的手册,以找到正确的语法,以便在'AS p WHERE p.ID IN( SELECT a.ID FROM wp_posts AS a INNER JOI'in line 1 –

+0

@ m.javadKoushki粘贴在单行的代码?请现在尝试 – TRiNE

+0

选择ID不获取所有重复posts.its错误的查询 –