1
Wuvist 2014-05-11 23:04:57 +08:00
就是分页,只是每页两个项目;你分页时怎么做,这里就怎么做。
分页查询参考: http://www.cnblogs.com/wuvist/archive/2010/03/15/1686267.html 的风格3. |
2
cbsw 2014-05-11 23:20:39 +08:00
只用过 Django 自带的分页,具体底层实现不是很清楚
|
3
lincanbin 2014-05-11 23:31:51 +08:00
多加一条查询太花时间,建议直接加个字段保存上一篇和下一篇的内容。
然后发布博文和删除时,对可能受影响的记录进行update |
4
txlty 2014-05-11 23:35:22 +08:00
order by id desc / asc 各取一条,也可以。
|
5
kxxoling 2014-05-11 23:42:44 +08:00
SELECT * FROM table LIMIT 3 OFFSET n-1; 这样?可以获取这篇文章及上下两篇文章,但n必须是本篇文章的rownum。
|
10
dong3580 2014-05-12 10:19:33 +08:00 via iPhone
@hjse7en
不知道楼主问的是哪个SQL? 我只会MSSQL和Oracle. 可以这样分页: select id,title from article where userid=4 and id>=1 and id<10 //动态变化id就达到分页了. 至于上一篇上一篇,肯定是点进这个页面之后才有的呀, 例如点进 id为10的页面,在url里面可以加上: xxx.aspx?id=10 那么他的 上一篇就是xxx.aspx?id=9 下一篇就是xxx.aspx?id=11 另外就是union尽量少用, |
11
blogphp230com 2014-05-12 11:51:16 +08:00
根据文章ID或者文章发布时间来获取
上一篇:where id<123 order by id desc limit 1 下一篇:where id>123 order by id sac limit 1 |
12
hjse7en OP @dong3580 id 不一定是连续的,中间可能有间隔.使用union是想只执行一次查询就可以获得结果,其实这里用union all就可以.
|
13
dong3580 2014-05-12 14:30:47 +08:00
@hjse7en
如果id不连续,你上面的所谓语句确定没问题? 不连续那就查询两次呗,个人建议像这种非复杂的查询不要使用union之类的高级功能,看你自己吧. 如果是oracle就用rownum,更简单; 如果是MSSQL用row_number一样啊. select pageid,id,title from( select row_number() pageid,id,title from article where userid=4 ) where pageid>=1 and pageid<10 PS:我现在没法用mssql工具,语句类似上面的. |
15
hjse7en OP @dong3580 id是自增长的,这里查出来的结果是根据user过滤的,所有有可能一个用户下,上一篇文章跟下一篇文章中间有几个间隔id是别的用户的。
|