[英]How to limit “SELECT” results?
我有下一个代码,他向用户显示了新的类别。 问题,我不知道如何限制结果,并限制5个最后的categiroes? 谢谢! 对不起,英语不好。 谢谢
<?php
$stmt = $pdo->prepare('SELECT * FROM categories');
$stmt->execute();
echo $stmt->rowCount();
?>
</span>
</a>
<ul class="dropdown-menu extended notification">
<li>
<p>Categories</p>
</li>
<?php
if($stmt->rowCount() > 0) {
foreach($stmt->fetchAll() as $row) {
$html = '<li>';
$html .= '<div class="alert alert-info clearfix">';
$html .= '<span class="alert-icon"><i class="fa fa-flag"></i></span>';
$html .= '<div class="noti-info">';
$html .= 'Category #'.$row['CategoryID'].' '.$row['CategoryName'].'';
$html .= '</div>';
$html .= '</div>';
$html .= '</li>';
echo $html;
}
} else {
$html = '<li>';
$html .= '<div class="alert alert-danger clearfix">';
$html .= '<span class="alert-icon"><i class="fa fa-flag"></i></span>';
$html .= '<div class="noti-info">';
$html .= '<a href="#"> There are no available categories.</a>';
$html .= '</div>';
$html .= '</div>';
$html .= '</li>';
echo $html;
}
?>
在查询中使用ORDER BY , DESC和LIMIT ,即:
SELECT * FROM categories ORDER BY ColumnNameEx DESC LIMIT 5;
ORDER BY
在某些情况下,
MySQL
可以使用索引来满足ORDER BY
子句,而无需进行额外的排序。
即使ORDER BY
与索引不完全匹配,也可以使用索引,只要索引的所有未使用部分和所有额外的ORDER BY
列在WHERE
子句中都是常量
http://dev.mysql.com/doc/refman/5.7/en/order-by-optimization.html
DESC
默认的排序顺序是升序,最小值先出现。 要以相反的顺序(降序)排序,请将
DESC
关键字添加到排序依据的列名称中。
http://dev.mysql.com/doc/refman/5.7/en/sorting-rows.html
LIMIT
如果从结果集中只需要指定数量的行,请在查询中使用
LIMIT
子句,而不是获取整个结果集并丢弃多余的数据。
https://dev.mysql.com/doc/refman/5.5/en/limit-optimization.html
在查询末尾添加“ LIMIT x”,x是您想要获得的结果数量
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.