我想将下面的查询限制为5个结果。但不是所有的结果。points
的5个最低值。我该怎么做呢?
$side = "SELECT title, points, submissionid
FROM submission
WHERE points >= '$sidepoints'
ORDER BY points DESC";
EDIT:我希望结果按points
降序排序。
MySQL:
$side = "SELECT title, points, submissionid
FROM submission
WHERE points >= '$sidepoints'
ORDER BY points ASC
LIMIT 5";
编辑
您可以将上述查询与以下PHP代码一起使用,也可以使用不同的SQL查询。
PHP反向结果(未测试)
$q = mysql_query($side);
$results = array();
while($r = mysql_fetch_assoc($q))
{
$results[] = $r;
}
$results = array_reverse($results);
foreach($results as $result)
{
echo $result['points']; // etc
}
或者SQL方式(未经测试-从这篇文章中找到)
SELECT title, points, submissionid
FROM (
SELECT title, points, submissionid
FROM submission
WHERE points >= '$sidepoints'
ORDER BY points ASC
LIMIT 5
) AS t1 ORDER BY points DESC
尝试将查询结果与另一个查询(子查询)排序
SELECT * FROM (
SELECT title, points, submissionid
FROM submission
WHERE points >= '$sidepoints'
ORDER BY points ASC
LIMIT 5
) t ORDER BY t.points DESC
如果你使用MYSQL使用LIMIT
。
$side = "SELECT title, points, submissionid
FROM submission
WHERE points >= '$sidepoints'
ORDER BY points DESC
LIMIT 5";
ansi sql使用TOP
。这将适用于sql server
$side = "SELECT TOP 5 title, points, submissionid
FROM submission
WHERE points >= '$sidepoints'
ORDER BY points DESC";
SELECT…