如何先根据一定的排序然后从当前ID往下取数据?
比如user表
id name created_on
2c9f942c59012b2101590566923b13ef Tom 2016-12-19
2c9f942c58f71f470158fc3fc7451214 Jack 2016-12-17
2c9f942c58d752450158e2b2b1ba5c19 Ben 2016-12-15
2c9f942c58d752450158d8786b2d0d82 Mike 2016-12-13
2c9f942c58becd6e0158ccea7a820267 Smith 2016-12-18
2c9f942c51e7821c0151e795b86b0003 James 2016-12-14
2c9f942c51ecbe520151ed07ce80007f Kobe 2016-12-18
2c9f942c52270989015233bd1c4f00f4 Curry 2016-12-19
比如说第一页两条数据, 根据时间倒序, 取到的是Tom 和Curry 两个19日的数据
然后我下拉刷新再取两条, 应该取的是两个18日的数据, 以此类推,因为数据是实时刷新的,
直接简单的倒序然后limit是会有重复数据的.
因为数据库是UUID作为ID, 不能把ID作为排序依据,
一开始我是想用rownum的, 取 2c9f942c51ecbe520151ed07ce80007f Kobe 2016-12-18 往下的两条数据
select o.* FROM
(select @rownum:=@rownum+1 rownum,u.* from (SELECT @rownum:=0) r,user u ORDER BY created_on desc) o
LIMIT SELECT o.rownum FROM o where o.id = '2c9f942c51ecbe520151ed07ce80007f ',2
发现有语法错误,LIMIT语句好像不能写select
然后我又改成
select o.* FROM
(select @rownum:=@rownum+1 rownum,u.* from (SELECT @rownum:=0) r,user u ORDER BY created_on desc) o
where o.rownum >
(select o2.rownum FROM
(select @rownum:=@rownum+1 rownum,u.id from (SELECT @rownum:=0) r,user u ORDER BY created_on desc) o2 where o2.id = '2c9f942c51ecbe520151ed07ce80007f')
LIMIT 0,2;
功能好像看上去没什么问题, 但是语句写的有点丑陋, 把相同的代码写了两次,
请问各位大神有简洁并且高效的办法吗?谢谢啦!!!万分感谢!!!