需要在数据库中找到最大值,但是我需要在列中读取其他值。
这可以使用一个SQL命令完成,还是必须使用这两个命令?
SELECT MAX(id) FROM Table;
SELECT * FROM Table WHERE id = $value;
其中$ value从第一个命令变化
答案 0 :(得分:5)
select * from your_table
where id = (select max(id) from your_table)
或
select t1.* from your_table t1
inner join
(
select max(id) as mid
from your_table
)
t2 on t1.id = t2.mid
答案 1 :(得分:1)
可能最简单的方法是:
select *
from t
order by id
limit 1
或者使用top 1
或where rownum = 1
或者数据库的正确逻辑。
注意:这只返回一行。如果您有这样的行重复,那么与最大值的比较将为您提供所有这些行。
另外,如果您使用的是支持窗口函数的数据库:
select *
from (select t.*, row_number() over (order by id desc) as seqnum
from t
) t
where seqnum = 1;