溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

指定一個(gè)ID找到上下的范圍

發(fā)布時(shí)間:2020-08-09 00:04:28 來(lái)源:ITPUB博客 閱讀:193 作者:壹頁(yè)書(shū) 欄目:MySQL數(shù)據(jù)庫(kù)
倒是不復(fù)雜
需求:
指定一個(gè)ID找到上下的范圍

實(shí)現(xiàn)思路:
給定一個(gè)ID,比如272944
如果表中的ID大于這個(gè)值,則自定義變量自增加一,
如果表中的ID小于這個(gè)值,則用這個(gè)值減去表中ID,
如果表中的ID等于這個(gè)值,則為0

  1.     SELECT   
  2.         a.ZpID,  
  3.             WHEN a.zpid - 272944 > 0 THEN @a:=@a + 1  
  4.                 WHEN a.zpid - 272944 < 0 THEN a.zpid - 272944  
  5.                 ELSE 0  
  6.             END AS rn  
  7.     FROM  
  8.         zp_audio_video a, (SELECT @a:=0) vars  
  9.     WHERE  
  10.         a.State = 1  
  11.             AND a.Labels LIKE '三周年站慶歌曲類(lèi)%'  
  12.     ORDER BY a.Zpid  

結(jié)果:
指定一個(gè)ID找到上下的范圍

最后過(guò)濾找到結(jié)果:
  1. SELECT   
  2.     *  
  3. FROM  
  4.     (  
  5.         SELECT   
  6.             a.ZpID,  
  7.                 WHEN a.zpid - 272944 > 0 THEN @a:=@a + 1  
  8.                     WHEN a.zpid - 272944 < 0 THEN a.zpid - 272944  
  9.                     ELSE 0  
  10.                 END AS rn  
  11.         FROM  
  12.             zp_audio_video a, (SELECT @a:=0) vars  
  13.         WHERE  
  14.             a.State = 1  
  15.                 AND a.Labels LIKE '三周年站慶歌曲類(lèi)%'  
  16.         ORDER BY a.Zpid  
  17.     ) a  
  18. WHERE  
  19.     rn <= 5 AND rn != 0  
  20. ORDER BY rn DESC  
  21. LIMIT 10;  

指定一個(gè)ID找到上下的范圍


向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI