我有以下表格:
TableA
x y
----------------------
3 1
2 5
5 2
现在我想更新列x中的值,其中y列中的值最低,类似于:
UPDATE TableA SET x = 1 WHERE y = min(y);
然后第一行应该是x = 1而y = 1.
但我得到以下错误代码:
Error Code: 1111. Invalid use of group function
我该如何解决?
答案 0 :(得分:1)
如果y
是唯一的,那么您可以使用order by
和limit
:
UPDATE TableA
SET x = 1
ORDER BY Y ASC
LIMIT 1;
如果您有多个具有最小值的行,则可以使用join
:
UPDATE TableA a JOIN
(SELECT MIN(Y) as miny FROM TableA) m
ON a.y = m.miny
SET x = 1;
答案 1 :(得分:0)
您可以按如下方式编写查询:
UPDATE TableA SET x = 1 WHERE y IN (select min(y) from TableA T2);
答案 2 :(得分:0)
UPDATE TableA
JOIN (SELECT min(y) as min_y, FROM TableA GROUP BY y)
as temp ON temp.min_y = TableA.y
SET x = 1;