我對MySQL比較陌生,我遇到了這個問題,我尋求幫助,但找不到答案(可能因爲我不知道要搜索什麼)。我確信有一個簡單的解決方案。PHP - MySQL的 - GROUP BY/ORDER BY?錯誤的結果輸出
我有一個簡單的MySQL表是這樣的:
id | referenceid | status
40 104702 4
39 104720 2
38 104720 0
37 104719 2
36 104719 0
35 104702 2
34 104702 0
41 104719 5
我想取將產生以下輸出數組:
對於每一個獨特的「referenceid」領域,我想知道最高的「ID」(即最近的)和「狀態」。
所以我曾嘗試此查詢:
$result = mysql_query(
"SELECT status,id,referenceid
FROM image_status_tracking
GROUP BY referenceid",$db);
while ($row = mysql_fetch_array($result)) {
$id = $row['id'];
$status = $row['status'];
$referenceid = $row['referenceid'];
echo "ID $id, REFID $referenceid, Status $status <br />";
}
這給出了這樣的輸出:
ID 40, REFID 104702, Status 4
ID 37, REFID 104719, Status 2
ID 39, REFID 104720, Status 2
但是,這不是我所期待的結果。引用id 104719的ID和狀態應該是41和5,而不是37和2.
我無法弄清楚如何獲取每個referenceid的最新ID行輸出。
我注意到,在PHPMYADMIN中,(你可以在上面的表格中看到),這些ID以相反的順序列出,最新的ID在底部。我不確定這是否與這個問題有關。
我希望這是明確的,我相信這是一件簡單的事情。
謝謝您的閱讀。
詹姆斯
你試過'ORDER BY ABS(ID)DESC' – Trey
請停止使用'mysql_ *'功能因爲他們在[棄用流程](http://news.php.net/php.internals/53799)。 [成爲一名更好的PHP開發人員](http://jason.pureconcepts.net/2012/08/better-php-developer/)。 –