MySQL查询选择特定数据范围

时间:2019-07-26 21:35:33

标签: mysql sql

我在MySQL中有一个庞大的数据库,其中一列包含一个序列号(在我的表中,我有大约17,000个序列号),我想选择一个特定的序列号并显示该编号和之前的50个序列号,我该怎么办?

2 个答案:

答案 0 :(得分:2)

我想你想要这样吗?

SELECT *
FROM table
WHERE serialnumber<=@yourserialnumberwhichyousearch
ORDER BY serialnumber DESC
LIMIT 51;

答案 1 :(得分:0)

您没有声明序列号是唯一的。如果不是,那么join是一种方法:

select t.*
from t join
     (select t.*
      from t
      where t.serialnumber < @sn
      order by t.serialnumber desc
      limit 50
     ) t50
     on t.serialnumber = @sn or t.serialnumber = t50

请注意,如果您的给定号码不在数据中,则会返回50个序列号。