按顺序调用第10行到第20行


Call row 10 to 20 in decended order

我正在使用PDO。在使用DESC排序后,我需要调用第10行到第20行的数据?我该怎么做?

$sql = "SELECT item, price, availability 
         FROM items 
           WHERE category = :category 
             ORDER BY item DESC";
$stmt= $connect->prepare($sql);
$stmt->execute(array(':category'=>"fruits"));
$rslt = $stmt->fetchAll(PDO::FETCH_ASSOC);
foreach ($rslt as $val){
  $data[] = $val; 
}

所以我想我会把它作为答案发布,因为我的评论引起了一些混乱,并且有一个拼写错误(引用和链接没有错误)。

Mysql有一个叫做CCD_ 1的函数,https://dev.mysql.com/doc/refman/5.0/en/select.html.

根据文件

LIMIT子句可用于约束SELECT语句返回的行数。LIMIT接受一个或两个数字参数,这两个参数必须都是非负整数常量(使用准备语句时除外)。有两个参数,第一个参数指定要返回的第一行的偏移量,第二个参数指定返回的最大行数。

所以要返回第10行到第20行,可以添加

极限9.11

直到查询结束。

根据您的代码:

$sql = "SELECT item, price, availability 
        FROM items 
        WHERE category = :category 
        ORDER BY item DESC
        limit 9, 11";
$stmt= $connect->prepare($sql);
$stmt->execute(array(':category'=>"fruits"));
$rslt = $stmt->fetchAll(PDO::FETCH_ASSOC);  
foreach ($rslt as $val){
    $data[] = $val; 
}

注意9之后的11,这是因为我们希望从第10行开始并返回11行(例如10-20行)。

更新您的sql。

SELECT item, price, availability FROM items WHERE category = :category ORDER BY item DESC limit 9,10