第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

如何在MySQL中獲取下一個(gè)/上一個(gè)記錄?

如何在MySQL中獲取下一個(gè)/上一個(gè)記錄?

拉莫斯之舞 2019-07-25 19:51:05
如何在MySQL中獲取下一個(gè)/上一個(gè)記錄?假設(shè)我有ID 3,4,7,9的記錄,我希望能夠通過(guò)下一個(gè)/上一個(gè)鏈接導(dǎo)航從一個(gè)到另一個(gè)。問(wèn)題是,我不知道如何獲取最近的更高ID的記錄。因此,當(dāng)我有一個(gè)ID為4的記錄時(shí),我需要能夠獲取下一個(gè)現(xiàn)有記錄,這將是7.查詢(xún)可能看起來(lái)像SELECT * FROM foo WHERE id = 4 OFFSET 1如何在不獲取整個(gè)結(jié)果集并手動(dòng)迭代的情況下獲取下一個(gè)/上一個(gè)記錄?我正在使用MySQL 5。
查看完整描述

3 回答

?
烙印99

TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超13個(gè)贊

除了cemkalyoncu的解決方案:

下一條記錄:

SELECT * FROM foo WHERE id > 4 ORDER BY id LIMIT 1;

之前的紀(jì)錄:

SELECT * FROM foo WHERE id < 4 ORDER BY id DESC LIMIT 1;

編輯:由于這個(gè)答案最近得到了一些upvotes,我真的想強(qiáng)調(diào)之前的關(guān)于理解主鍵列不是要排序的列的評(píng)論,因?yàn)镸ySQL不保證更高,自動(dòng)遞增,值必須在以后添加。

如果你不關(guān)心這個(gè),只需要更高(或更低)的記錄,id那么這就足夠了。只是不要將其用作確定記錄是否實(shí)際在以后(或更早)添加的方法。例如,請(qǐng)考慮使用datetime列進(jìn)行排序。


查看完整回答
反對(duì) 回復(fù) 2019-07-25
?
慕森卡

TA貢獻(xiàn)1806條經(jīng)驗(yàn) 獲得超8個(gè)贊

以上所有解決方案都需要兩次數(shù)據(jù)庫(kù)調(diào)用 下面的sql代碼將兩個(gè)sql語(yǔ)句合并為一個(gè)。

select * from foo 
where ( 
        id = IFNULL((select min(id) from foo where id > 4),0) 
        or  id = IFNULL((select max(id) from foo where id < 4),0)
      )


查看完整回答
反對(duì) 回復(fù) 2019-07-25
?
繁星點(diǎn)點(diǎn)滴滴

TA貢獻(xiàn)1803條經(jīng)驗(yàn) 獲得超3個(gè)贊

下一個(gè):

select * from foo where id = (select min(id) from foo where id > 4)

以前:

select * from foo where id = (select max(id) from foo where id < 4)


查看完整回答
反對(duì) 回復(fù) 2019-07-25
  • 3 回答
  • 0 關(guān)注
  • 1104 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)