将MAX(id)添加到结果集的每一行

时间:2013-07-24 12:46:45

标签: mysql sql max

我想要做的是为符合查询条件的每行检索表的MAX(id)。下面我添加了一个我想要检索的数据示例。

我的表:

+------+----------+
| id   | content  |
| 1    | Hello    |
| 2    | World    |
| 3    | !!!!     |
+------+----------+

预期查询结果:

+------+----------+-----+
| maxid| content  | id  |
| 3    | Hello    | 1   |
| 3    | World    | 2   |
| 3    | !!!!     | 3   |
+------+----------+-----+

必须使用WHEREHAVING语句。

2 个答案:

答案 0 :(得分:3)

尝试这种方式:

select (select max(id) from tab) as maxid, content, id 
from tab

select  t1.maxid, t.content, t.id 
from tab t
cross join (select max(id) as maxid from tab) t1

Sql Fiddle DEMO(来自 hims056 。谢谢!)

答案 1 :(得分:0)

假设您已经添加了maxid列:

UPDATE mytable SET maxid = (
    SELECT MAX(id) FROM mytable
);