MySQL - 更新X,其中Y最低

时间:2015-10-07 19:10:20

标签: mysql sql database

我有以下表格:

       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

我该如何解决?

3 个答案:

答案 0 :(得分:1)

如果y是唯一的,那么您可以使用order bylimit

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;