cod*_*ict 25
只有在对字段进行排序的查询输出时,才能使用第一个和最后一个.
获得第一条记录:
select col1 from tab1 order by col1 asc limit 1;
Run Code Online (Sandbox Code Playgroud)
要获得最后的记录:
select col1 from tab1 order by col1 desc limit 1;
Run Code Online (Sandbox Code Playgroud)
bde*_*eta 22
SELECT
(SELECT column FROM table WHERE [condition] ORDER BY column LIMIT 1) as 'first',
(SELECT column FROM table WHERE [condition] ORDER BY column DESC LIMIT 1) as 'last'
Run Code Online (Sandbox Code Playgroud)
当我需要选择事件系列中的第一个和最后一个日期时,这对我有用.
pax*_*blo 12
怎么样的:
select 'first', f1, f2, f3, f4 from tbl
order by f1 asc, f2 asc
limit 1
union all
select 'last', f1, f2, f3, f4 from tbl
order by f1 desc, f2 desc
limit 1
Run Code Online (Sandbox Code Playgroud)
显然可以自由地在一个where子句中添加你想要的任何条件,但基本的前提order by是在两个select部分中颠倒顺序.
该limit子句只会在两种情况下获得第一行.这恰好是第二行中的最后一行,select因为你已经颠倒了顺序.
如果您的条件只有一行,并且您不希望它返回两次,请使用union而不是union all.
select * from table
where id = (select id from tab1 order by col1 asc limit 1) or
id = (select id from tab1 order by col1 desc limit 1);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
72271 次 |
| 最近记录: |