PHP + MySQL:如何获取有限数量的结果?

时间:2013-03-07 09:21:55

标签: php mysql limit

我有一个100-200k记录的数据库表,我需要优化它。例如,如果用户想要搜索术语汽车,他将获得大约25k的结果。

我想提供他只是说500个最新结果,但该怎么做?我知道我必须使用LIMIT,但我不确定,如何“分组”最新的500行。

为了更好地了解我现在如何从数据库中获取数据,这里有一个小片段:

$search = mysql_real_escape_string(searched_query($_GET['skill'])); 
$q = "...long sql query...";
echo $q;
$result = mysql_query($q);
$items = 30; // number of items per page.
$all = $_GET['a'];

$num_rows = mysql_num_rows($result);
if($all == "all"){
    $items = $num_rows;
}
$nrpage_amount = $num_rows/$items;
$page_amount = ceil($num_rows/$items);
$page_amount = $page_amount-1;
$page = mysql_real_escape_string($_GET['p']);
if($page < "1"){
    $page = "0";
}
$p_num = $items*$page;
// Query that you would like to SHOW
$result = mysql_query($q." ORDER BY published DESC LIMIT $p_num , $items");

提前谢谢!

2 个答案:

答案 0 :(得分:0)

published DESC排序,您已经将列表从最新到最旧排序。因此,如果您应用limit 500,它将自动仅获取最新的500行...

因此,Mysql将首先订购,然后应用限制。

答案 1 :(得分:-1)

在查询中使用ORDER BY。有关详细信息,请查看here