我的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参数进行排序。
答案 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