ORDER BY 日期和時間在MySQL 中的GROUP BY 名稱之前
在MySQL 中,ORDER BY 子句應用在GROSQL 子句應用在GROSQL 中,ORDER BY 子句應用在GROSQL 中,子句之前。但是,在某些情況下,使用者需要先按日期和時間欄位對資料進行排序,然後再對名稱列執行 GROUP BY。
考慮下表:
name | date | time |
---|---|---|
tom | 2011-07-04 | 01:09:52 |
tom | 2011-07-04 | 01:09:52 |
mad | 2011-07-04 | 02:10:53 |
mad | 2009-06-03 | 00:01:01 |
目標是先擷取最舊的名稱。以下查詢失敗:
SELECT * ORDER BY date ASC, time ASC GROUP BY name
這是因為 GROUP BY 在 ORDER BY 之前應用,導致在排序之前對具有相同名稱的記錄進行分組。結果,沒有達到預期的排序。
解決方案:
要解決此問題,可以使用以下方法:
SELECT * FROM ( SELECT * FROM table_name ORDER BY date ASC, time ASC ) AS sub GROUP BY name
在此查詢中:
透過使用此方法,GROUP BY 應用於排序的結果集,確保首先檢索最舊的名稱,無論日期和時間如何田野。
以上是在 MySQL 中,如何在按名稱分組之前按日期和時間排序?的詳細內容。更多資訊請關注PHP中文網其他相關文章!