我想更新具有特定計數次數(COUNT(*)= 2),與數40請看下面的例子多行:如何使用Group by子句更新具有特定計數的多個行?
create table test(id int not null primary key, day date not null, tst int not null );
insert into test(id, day, tst) values(1, '2006-10-08', 0);
insert into test(id, day, tst) values(2, '2006-10-08', 0);
insert into test(id, day,tst) values(3, '2006-10-09', 0);
我用下面的查詢UPDATE test SET tst = 40 WHERE (select day from test GROUP BY day having count(*)=2);
但從不工作。任何幫助請...
謝謝。
Aymen
謝謝dcp,它不適合我!我正在使用Mysql 5.1.33。 UPDATE語句以「HAVING COUNT(*)= 2」結尾;「我認爲「select * from test」的第二句只是爲了顯示結果。不是嗎?任何方式,我已經使用上面的句子,並與SELECT子句分離,但從來沒有工作。在分離情況下,我收到了這條消息:「你無法在FROM子句中指定目標表'test1'進行更新」。 – Aymen 2012-03-07 02:55:07
我用test1表代替測試。 – Aymen 2012-03-07 03:37:44
我想出了這個查詢,這也是行不通的!但我認爲它更接近正確的一個。不是嗎?! (SELECT * day(FROM test1 t2 from SELECT date)AS tmpb WHERE test1.day = t2.day GROUP BY day HAVING COUNT(*)= 2);這裏的錯誤是'where子句'中的未知列't2.day'「 – Aymen 2012-03-07 07:49:59