分页sql查询语法

时间:2012-04-04 16:28:06

标签: mysql sql pagination sql-order-by

我正在尝试按日期在我的讨论区中对帖子进行排序。这是我的代码:

$query = mysql_query("SELECT * FROM {$statement} 
LIMIT {$startpoint} , {$limit} 
ORDER BY datetime ASC");

这有什么语法错误吗?如果没有,还有什么可能是错的?基本上发生了什么,结果是没有出现。我删除了Order by,它有效(但当然它没有排序......)

3 个答案:

答案 0 :(得分:5)

订单应该在限制之前:

$query = mysql_query("SELECT * FROM {$statement} 
ORDER BY datetime ASC LIMIT {$startpoint} , {$limit}");

答案 1 :(得分:2)

试试这个:

$query = mysql_query("SELECT * FROM {$statement} 
ORDER BY datetime ASC LIMIT {$startpoint} , {$limit} ");

答案 2 :(得分:0)

可能有点太晚了,但mySQL提供了非常有用的OFFSET关键字...特别是对于分页

mysql_query("SELECT * FROM {$statement} ORDER BY datetime ASC LIMIT {$limit} OFFSET {offset}

如果您要查找的每页10条记录,并且您希望在第2页上显示记录,即您的查询的记录11-20将如下所示:

 mysql_query("SELECT * FROM {$statement} ORDER BY datetime ASC LIMIT 10 OFFSET 10

参考:http://www.petefreitag.com/item/451.cfm