我正在使用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