MYSQL - 从表开始以ID为Y从X开始

时间:2012-05-07 14:53:12

标签: mysql sql-order-by

我的mysql db我有一个包含3个参数的表(name,views,id)。我需要通过视图排序行。我得到的是这样的东西。

查询:

select 
from table 
order by views

结果:

   id    |  name   |  views
   ------------------------
   7     |  xxxx   |  9000
   2     |  yyyy   |  8000
   1     |  aaaa   |  7000
   4     |  bbbb   |  6000
   8     |  dddd   |  5000
   6     |  cccc   |  4000
   5     |  oooo   |  3000
   3     |  tttt   |  2000

我需要做的是获取按视图排序的行,但是从specyfic ID开始。可能吗。我拥有的所有输入都是ID。让那个ID为6,这应该输出:

   id    |  name   |  views
   ------------------------       
   6     |  cccc   |  4000
   5     |  oooo   |  3000
   3     |  tttt   |  2000

我不能使用LIMIT,因为我现在还不知道什么是正确的。我只需要获取以ID开头的行。


我要做的是获得无限滚动,我根据显示的最后一个元素请求下一个元素。唯一棘手的部分是我通过views参数进行排序。

2 个答案:

答案 0 :(得分:0)

select * from table
where (views = 4000 and id>6) or (views < 4000) 
order by views desc, id asc;

棘手的部分是你必须知道(选择)ID为6的元素的视图;您还需要使用ID作为辅助排序条件,以获得一致的结果。

实际上这是一种常见的情况,直到分页类型

答案 1 :(得分:0)

SELECT * FROM table 
WHERE views <= (SELECT views FROM table WHERE id = 6) 
ORDER BY views
相关问题