首页 > 其他 > 详细

指定一个ID找到上下的范围

时间:2016-01-09 02:10:03      阅读:348      评论:0      收藏:0      [点我收藏+]
倒是不复杂
需求:
bubuko.com,布布扣

实现思路:
给定一个ID,比如272944
如果表中的ID大于这个值,则自定义变量自增加一,
如果表中的ID小于这个值,则用这个值减去表中ID,
如果表中的ID等于这个值,则为0

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

结果:
bubuko.com,布布扣

最后过滤找到结果:
  1. SELECT   
  2.     *  
  3. FROM  
  4.     (  
  5.         SELECT   
  6.             a.ZpID,  
  7.                 CASE  
  8.                     WHEN a.zpid - 272944 > 0 THEN @a:=@a + 1  
  9.                     WHEN a.zpid - 272944 < 0 THEN a.zpid - 272944  
  10.                     ELSE 0  
  11.                 END AS rn  
  12.         FROM  
  13.             zp_audio_video a, (SELECT @a:=0) vars  
  14.         WHERE  
  15.             a.State = 1  
  16.                 AND a.Labels LIKE ‘三周年站庆歌曲类%‘  
  17.         ORDER BY a.Zpid  
  18.     ) a  
  19. WHERE  
  20.     rn <= 5 AND rn != 0  
  21. ORDER BY rn DESC  
  22. LIMIT 10;  

bubuko.com,布布扣


指定一个ID找到上下的范围

原文:http://blog.itpub.net/29254281/viewspace-1973422/

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!