[英]How to get the data before the max id
我正在做一個有通知的信息系統,所以我想從宣布表中獲取數據,首先應該是具有最大ID的數據,因為它是最新公告,這是我的代碼:
SELECT image FROM announce where id=(SELECT max(id) FROM announce);
現在我想在max id之前獲取數據,我在這里使用這段代碼:
SELECT image FROM announce where id=(SELECT max(id)-1 FROM announce);
但它只有在沒有刪除的行時才有效,如果有一些已刪除的行,則它不起作用,例如max id為10且id為9,8,7被刪除。 這意味着現在的id是:1,2,3,4,5,6,10,我怎樣才能獲得id 6,5,4,3,2,1中的數據?
如果ORDER
由降序(查詢DESC
),並有一個OFFSET
之一( OFFSET 1
),你會得到倒數第二排。 並且偏移兩個將在此之前給出行,依此類推。 這也使用LIMIT 1
,所以我們只得到一行。 LIMIT 1, 1
與LIMIT 1 OFFSET 1
相同。
SELECT image
FROM announce
ORDER BY id DESC
LIMIT 1, 1
您只需使用一個查詢,並使用order by
和limit
來代替您使用的兩個查詢:
select image
from announce
order by id desc
limit 2
如果您想單獨查詢它們,可以將limit 2
更改為limit 1, 1
以便第二個查詢按您的意願工作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.