2014-06-08 49 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

谢谢,它的工作。 –