【发布时间】:2013-09-11 05:46:01
【问题描述】:
我有下面的mysql表
ID (int) parent_id (int) title (str) date (int - unix timestamp)
------------------------------------------------------------------------------------
252 2 Title 1 1378872876 (01. sept)
262 2 Title 2 1378870827 (02. sept)
273 3 Title 3 1378870800 (04. sept)
296 3 Title 4 1378869614 (05. sept)
301 2 Title 5 1378869384 (02. sept)
324 4 Title 6 1378868522 (02. sept)
339 3 Title 7 1378865096 (03. sept)
355 3 Title 8 1378864830 (02. sept)
365 4 Title 9 1378863323 (04. sept)
366 4 Title 10 1378863240 (02. sept)
376 2 Title 11 1378859731 (01. sept)
381 5 Title 12 1378858380 (03. sept)
388 3 Title 13 1378858080 (02. sept)
392 4 Title 14 1378857600 (04. sept)
我想要做的是选择按 unix 时间戳排序的所有行(仅一天),但也按 parent_id 分组。因此,SQL 查询应返回以下内容:
ID (int) parent_id (int) title (str) date (int - unix timestamp)
------------------------------------------------------------------------------------
296 3 Title 4 1378869614 (05. sept)
273 3 Title 3 1378870800 (04. sept)
339 3 Title 7 1378865096 (03. sept)
388 3 Title 13 1378858080 (02. sept)
355 3 Title 8 1378864830 (02. sept)
392 4 Title 14 1378857600 (04. sept)
365 4 Title 9 1378863323 (04. sept)
366 4 Title 10 1378863240 (02. sept)
324 4 Title 6 1378868522 (02. sept)
381 5 Title 12 1378858380 (03. sept)
262 2 Title 2 1378870827 (02. sept)
301 2 Title 5 1378869384 (02. sept)
252 2 Title 1 1378872876 (01. sept)
376 2 Title 11 1378859731 (01. sept)
我尝试了以下方法,但这并不是我真正想要的:
SELECT
f.*,
FROM_UNIXTIME(f.post_date , '%d' ) AS day,
FROM_UNIXTIME(f.post_date , '%H' ) AS hour
FROM feeds f
WHERE f.parent_id IN (200,194,176,182,190,181,189,196,191)
GROUP BY f.parent_id
ORDER BY f.post_date DESC
LIMIT 0,100
这只能用 mysql 完成还是我必须构建多个查询?
【问题讨论】:
-
按 f.parent_Id,f.post_date 排序?
-
他想按日期(desc)在每个组内排序,并按其最大日期(最大组 3 = 5 sep,最大组 4 = 4 sep 等等)对每个组进行排序