我在使用MySQL,我有一個表中有一個列(我正在製作一個類到期日期表)。以前我有查詢,如下所示:在查詢中使用ORDER BY GROUP BY
SELECT * FROM duedates_f2011 ORDER BY anothercolumn
爲了防止重複發生(基於交貨期列),我不得不改變它,如下所示:
SELECT * FROM duedates_f2011 GROUP BY duedate
目前,它保留了相同的順序,但我怎麼能保證它仍然會這樣做呢?我讀過的GROUP BY
教程中沒有任何內容表示它仍然會對其進行排序,並且之後添加ORDER BY
聲明不正確。有什麼我錯過了,還是有其他我應該添加,以確保它保持秩序?
(在我的標籤顯示,我使用PHP來運行查詢)
'ORDER BY'是你想要的,但它可能不工作,因爲與'GROUP BY'相關的其他問題。你可以用兩個子句顯示你的語句,並指出'SELECT'子句中包含哪些列? – bobs
儘管'GROUP BY'對於MySQL來說是足夠的保證和排序,但我認爲最好的做法是包含'ORDER BY'子句(它是允許的,並且是明確的文檔,您希望在特定請注意,MySQL與其他數據庫引擎不同,它們不保證沒有ORDER BY子句的查詢結果集的排序(例如,我們觀察到舊版本的Oracle以GROUP BY順序返回行,但這是該組操作產生的副作用,而不是保證,後續版本的Oracle不會以GROUP BY順序返回行)。 – spencer7593