簡體   English   中英

如何在max id之前獲取數據

[英]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, 1LIMIT 1 OFFSET 1相同。

SELECT image
FROM announce
ORDER BY id DESC
LIMIT 1, 1

您只需使用一個查詢,並使用order bylimit來代替您使用的兩個查詢:

select image 
from announce 
order by id desc 
limit 2

如果您想單獨查詢它們,可以將limit 2更改為limit 1, 1以便第二個查詢按您的意願工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM