2016-05-12 63 views
0

everyone!我試圖寫一個查詢來查找內容的副本並設置除原始文章以外的所有副本(原始文章將由計數器定義(,如果原始帖子的計數器大於其他所有副本計數器,則是原始)並設置在數據庫激活= 0。選擇並更新同一查詢並找到重複項目

DB achitecture{id, title (varchar), description(varchar), img(varchar), active(int)} 

爲找到重複

SELECT posts.title, posts.counter, posts.id 
    FROM posts 
    INNER JOIN (
    SELECT title 
    FROM posts 
    GROUP BY title 
    HAVING count(title) > 1 
) duplicates ON posts.title = duplicates.title 
    ORDER BY posts.title; 

我需要設置有效= 0的重複 怎麼做下面的查詢?

回答

1

你可以很容易與JOIN把它變成一個UPDATE

UPDATE posts INNER JOIN 
     (SELECT title, MAX(counter) as maxcounter 
     FROM posts 
     GROUP BY title 
     HAVING count(title) > 1 
     ) duplicates 
     ON posts.title = duplicates.title AND posts.counter < maxcounter 
    set posts.active = 0; 
+0

它的作品,非常感謝你。 – ATIKON