2014-06-08 153 views
0

對於例如,我有一個名爲 「Qbank」,它具有下列的MySQL表 - ID(INT-AUTO_INCREMENT),問題(LONGTEXT),重複(INT,默認爲0)如何更新mysql中所有重複記錄的列?

我知道怎麼弄的計數重複行(問題) -

SELECT Question, Repeated, count(ID) as cnt FROM Qbank 
GROUP BY Question HAVING cnt > 1 

而且也讓所有重複行的列表 -

SELECT ID, Qbank.Question, Repeated FROM Qbank 
INNER JOIN (SELECT Question FROM Qbank 
GROUP BY Question HAVING count(ID) > 1) dup ON Qbank.Question = dup.Question 
Order By Question 

但我想做的是 - 將所有的「重複」值重複(哈維相同的問題)設置爲1.(以便這些可以區別於剩餘的非重複問題,默認情況下重複值爲0)

這樣的查詢的結構是什麼?

對不起,詳細說明,這是唯一的證明方法,我在詢問之前搜尋了很多東西,但還沒有找到任何東西。

謝謝。

問候,

博士阿圖爾

回答

1

嘗試在UPDATE使用JOIN

UPDATE Qbank T1 JOIN 
    (SELECT Question FROM Qbank 
    GROUP BY Question HAVING count(ID) > 1) dup ON T1.Question = dup.Question 
SET T1.Repeated = 1 
+0

謝謝,它的工作。 –