1

需要在数据库中查找最大值,但随后我需要读取列中的其他值。

这可以用一个 SQL 命令完成还是我必须使用这两个命令?

SELECT MAX(id) FROM Table; 
SELECT * FROM Table WHERE id = $value;

其中 $value 是来自第一个命令的变量

4

2 回答 2

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
于 2013-06-19T15:53:44.503 回答
1

可能最简单的方法是:

select *
from t
order by id
limit 1

或者使用top 1orwhere rownum = 1或者任何适合您的数据库的逻辑。

注意:这只返回一行。如果您有重复的此类行,则与最大值进行比较将为您提供所有这些行。

此外,如果您使用的是支持窗口函数的数据库:

select *
from (select t.*, row_number() over (order by id desc) as seqnum
      from t
     ) t
where seqnum = 1;
于 2013-06-19T15:57:53.710 回答