1

我的 mysql db 我有一个包含 3 个参数(名称、视图、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

我需要做的是获取按视图排序但以特定 ID 开头的行。是否可以。我所有的输入都是 ID。假设 ID 为 6,应该输出:

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

我不能使用 LIMIT 因为我现在真的不知道什么是位置。我只需要获取以 ID 开头的行。


我想要做的是无限滚动,我根据显示的最后一个元素请求下一个元素。唯一棘手的部分是我按视图参数排序。

4

2 回答 2

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

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

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

于 2012-05-07T14:57:16.963 回答
0
SELECT * FROM table 
WHERE views <= (SELECT views FROM table WHERE id = 6) 
ORDER BY views
于 2012-05-07T14:59:22.173 回答