用于多个查询的SQL LIMIT



我有一个分页脚本,它获取页面变量并在sql查询中输入LIMIT值。

LIMIT $page, $limit2 

这一切都很好,问题是我有两个sql查询,所以LIMIT 0,10显示第一个查询的10个结果,然后显示第二个查询的另外10个结果=每页20个结果,我需要的是显示第一个QRY的10个,在第二页上显示第一个QR的其余结果,然后才打印第二个询问的结果。

我在完整查询之前尝试了if语句,在while循环中增加一个++,使找到结果的数字偶数,然后运行第二个QRY,但似乎不起作用。

我也尝试过类似的方法,只需很少的数学运算,但效果也不太好。

    if($page==$printf2)
    {$limit2=10;} 
    if($page==0)
    {$limit2=0;}

在第一个QRY列表结束后,如果每页的结果不超过10个,那么制作第二个QRY名单的正确方法是什么?

您是否评估使用UNION语句?

SELECT * FROM xxxxx (first query) 
UNION ALL
SELECT * FROM YYYYYY (second query)
$sql = "QUERY1 LIMIT $page, $limit";
$result = mysql_query($result);
/* process the result here! */
if (mysql_num_rows($result) < 10) {
    $sql2 = "QUERY2 LIMIT $page, $limit2";
    $result = mysql_query($result);
    /* process result of query 2 */
}

这样,只有当从query1返回的行是表中的最后一组行时,才执行查询二。

最新更新