我想更新具有特定计数次数(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