【发布时间】:2010-10-05 04:36:42
【问题描述】:
我正在尝试从表中 20 个最新条目的列表中选择 5 个查看次数最多的文章。我的表结构本质上是这样的:
id | date | title | content | views
我的第一个想法是使用内部选择来获取最近的 20 篇文章,然后从中进行选择,但我还没有运气。
//doesn't work (my version of mysql doesn't support LIMIT in sub queries)
$recent = "(SELECT id FROM news ORDER BY date DESC LIMIT 20)";
$result = $db->query("SELECT id, title, date, content FROM news WHERE id IN $recent ORDER BY views DESC LIMIT ".self::RECENT_MAX);
//neither does this (syntax error @ 'OFFSET 20')
$recent = "(SELECT MAX(date) FROM news ORDER BY date DESC OFFSET 20)";
$result = $db->query("SELECT id, title, date, content FROM news WHERE date > $recent ORDER BY views DESC LIMIT ".self::RECENT_MAX);
有人对如何构建此查询有任何建议吗?
【问题讨论】: