我正在使用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;
}
答案 0 :(得分:0)
更新您的sql。
SELECT item, price, availability
FROM items
WHERE category = :category
ORDER BY item DESC limit 9,10
答案 1 :(得分:0)
所以我想我会发布这个作为答案,因为我的评论我觉得有些混乱而且有一个拼写错误(引用和链接都没有错误)。
Mysql有一个名为limit
,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;
}
请注意11
之后的9
,因为我们要从第10行开始并返回11行(例如10-20)。