最好的方法是什么?我一直在回过头来对结果做一个while()循环并且随着时间的推移抓住最后一个,但这似乎有点,嗯,不优雅。 D7在这里提供了一些帮助,但D6有什么建议吗?谢谢!
答案 0 :(得分:2)
为什么不颠倒查询的顺序并将其限制为1并得到它?
类似的东西:
$result = db_query_range("SELECT * FROM {table} ORDER BY field DESC", 0, 1)
;
http://api.drupal.org/api/drupal/includes--database.mysql.inc/function/db_query_range/6
答案 1 :(得分:1)
一般情况下(没有类似于mysql的引擎提示),请使用:
$query = 'SELECT nid, title from {node} WHERE type="page"';
$query_count = 'SELECT count(*) from {node} WHERE type="page"';
$count = db_result(db_query($query_count)); // $query_count
$last_record = db_fetch_object(db_query_range($query, $count-1, 1));
如果查询使用排序,只需使用“反订单”:
$query = 'SELECT nid, title from {node} WHERE type="page" ORDER BY nid ASC';
// ...
$counterquery = 'SELECT nid, title from {node} WHERE type="page" ORDER BY nid DESC LIMIT 0,1';
$last_record = db_fetch_object(db_query($counterquery));
答案 2 :(得分:0)