我想要做的是为符合查询条件的每行检索表的MAX(id)。下面我添加了一个我想要检索的数据示例。
我的表:
+------+----------+
| id | content |
| 1 | Hello |
| 2 | World |
| 3 | !!!! |
+------+----------+
预期查询结果:
+------+----------+-----+
| maxid| content | id |
| 3 | Hello | 1 |
| 3 | World | 2 |
| 3 | !!!! | 3 |
+------+----------+-----+
必须使用WHERE
和HAVING
语句。
答案 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
);