回答

收藏

用mysql选择围绕id行前行后

技术问答 技术问答 242 人阅读 | 0 人回复 | 2023-09-14

我需要使用mySQL获取围绕ID的ID。( p8 F. s9 D) H
例子:: D4 g- u% f. a9 S, m' ~* q
表格中的ID:# m) ~" d+ p# O1 }! w3 i- j6 A
2,4,5,9,11,15,19,22,25例如,我需要知道ID 9周围的5个ID。查询应返回:
& y) `8 i) G1 M. I' ?" |4,5,9,11,15谢谢!5 V4 m9 Q! D0 W4 J2 ~  Z
                                                                , ]" _3 P0 Y) E. h8 j9 ]8 u
    解决方案:                                                               
$ h1 s$ ^( F6 C! u5 W' T7 P                                                                可能的解决方案是" C4 \: B5 c1 r+ E  p
计算每个ID绝对值,然后减去ID。1 P5 I' a7 c( \9 s. z! c* I
对结果进行排序,并将结果集限制录。
SQL语句( {6 `3 R, b5 n) N9 t3 Z9 W
SELECT ABS(ID - 9),*FROM   MyTableORDER BY       ABS(ID - 9)LIMIT  5编辑    (向ypercube感谢指出解决方案中可能存在的缺陷)# R0 Y0 h1 @& u7 |9 d
如果你想从左边得到两个id,从右边得到两个id,这个句子可以根据以下方法进行调整
# U/ d9 ?7 R6 y$ K% ?SELECT * FROM MyTable WHERE ID  9  ORDER BY ID ASC  LIMIT
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则