一個記錄現在即時通訊具有下列數據:SQL - 每日期
Name Time
picture 2012-07-23 17:00:00
picture 2012-07-24 18:00:00
picture 2012-07-24 19:00:00
picture 2012-08-03 08:40:06
picture 2012-08-03 08:42:39
picture 2012-08-03 08:54:03
picture 2012-08-03 10:38:58
picture 2012-08-03 10:39:55
picture 2012-08-06 08:12:14
而且下面的SQL查詢:
SELECT DATE_FORMAT(DATE(DATE_SUB(time,INTERVAL 4 HOUR)),GET_FORMAT(DATE,'ISO'))
as time, uri, media_id, description
FROM media WHERE place_id = 1
GROUP BY time ORDER BY time DESC
效果很好,給我我想要的數據。 但是,每個獨特日期的數據按每個「日」的最早日期排序。我想要它由最新訂購。 Order By聲明只是排序整個結果,而不是每天的日期。如果o使用Group By時可以採用最新的日期而不是最早的日期,但是我猜想除了group by之外,我還得設計其他的東西。
編輯:下面的作品。但我想從子查詢中返回更多列,我該怎麼做?
SELECT Distinct DATE_FORMAT(DATE(DATE_SUB(time, INTERVAL 4 HOUR)) ,
GET_FORMAT(DATE, 'ISO')) AS date,
(SELECT type FROM media WHERE
DATE_FORMAT(DATE(DATE_SUB(time, INTERVAL 4 HOUR)) ,
GET_FORMAT(DATE,'ISO')) = date Order by time DESC Limit 1) as name
FROM media
GROUP按時間倒序按時間倒序? – imm 2012-08-07 06:03:34
問題是Group By不是一個排序函數。所以它沒有區別。我想我需要一個子查詢。 – joxxe 2012-08-07 06:17:57
我的不好。 MySQL文檔似乎暗示你可以做到這一點。即,在此頁面上:http://dev.mysql.com/doc/refman/5.0/en/select.html ...所以如果它不這樣做,我會對ASC | DESC感興趣是通過 – imm 2012-08-07 06:21:31