【问题标题】:SQLite design questionSQLite 设计问题
【发布时间】:2009-12-26 13:27:42
【问题描述】:

类似于提要阅读器,我存储了一堆文章,每个文章都属于一个来源(提要),每个提要都可以属于一个类别。我想做的是:

  1. 检索属于某个类别的提要的文章。
  2. 对文章进行分组。一种情况是按日期(published_time),这样我就有了组,例如:(12.04.09 - 3 篇文章,17.04.09 - 9 篇文章,等等)
  3. 遍历每个组并显示每篇文章。伪代码:
foreach(结果中的分组)
{
 打印(组名);

 foreach(g.Articles 中的文章)
 {
  打印(文章。标题);
  打印(文章。内容);
 }
}

我想的很简单,比如:

SELECT group_concat(item_id, '#') FROM items GROUP BY date(published_time)

会工作的。但是然后我必须拆分结果行并循环遍历(并且没有 group_concat(*) 函数)

我对如何对结果进行分组(2)感到困惑,以便我可以遍历每个结果,同时保留组名。我认为一个 SQL 查询返回一个大表,因此,仅用一个查询似乎不可能完成此操作。

我认为这更像是一个数据库设计问题,我也是 SQLite 的新手(就此而言是 SQL),所以我问你,大师们,如何有效地完成这项工作?

【问题讨论】:

    标签: sql sqlite


    【解决方案1】:
    SELECT Title, Content, date(published_time) AS Date
    FROM items
    ORDER BY date(published_time);
    

    伪代码:

    last = None
    for r in results:
      if not last or r.Date != last.Date:
        print "Group", r.Date
      print r.Title, r.Content
      last = r
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-12-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-18
      • 2011-11-09
      • 2011-01-16
      • 2011-03-21
      相关资源
      最近更新 更多