我想將以下查詢限制爲5個結果。但不僅僅是5個結果。 points
的5個最低值。我怎樣才能做到這一點?將查詢限制爲查詢的5個最低值到變量的5個最低值
$side = "SELECT title, points, submissionid
FROM submission
WHERE points >= '$sidepoints'
ORDER BY points DESC";
編輯:我想points
降序排列的結果。
我想將以下查詢限制爲5個結果。但不僅僅是5個結果。 points
的5個最低值。我怎樣才能做到這一點?將查詢限制爲查詢的5個最低值到變量的5個最低值
$side = "SELECT title, points, submissionid
FROM submission
WHERE points >= '$sidepoints'
ORDER BY points DESC";
編輯:我想points
降序排列的結果。
嘗試用另一個查詢(子查詢)訂購您的查詢結果
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";
工作在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的方式(未經測試,以及 - 從this post中)
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 ... ORDER BY點ASC LIMIT 5?
你希望在mysql中查看它們或可你只需在打印前閱讀到一個PHP數組和反向? – hackartist 2011-12-17 00:06:31
@hackartist PHP – John 2011-12-17 00:07:16
`array_reverse()` – Rufinus 2011-12-17 00:08:31