我有一张SQLite
表,如下所示:
channel message time
123 hello 2014-03-25 21:33:52
123 there 2014-03-25 22:31:00
222 hi also 2014-01-22 10:19:00
222 bye 2014-01-22 11:29:00
现在,我想获取每个channel
的最新消息,并按DESC
排序所有结果。
到目前为止我得到的是:
SELECT * from history WHERE GROUP BY channel order by date(time) DESC;
这会返回每个channel
的最新消息,但结果不符合规定。
我得到了:
222 bye 2014-01-22 11:29:00
123 there 2014-03-25 22:31:00
频道123
应该是最新的频道。
任何想法我做错了什么?
答案 0 :(得分:2)
我只是尝试使用日期和时间对我的数据进行排序,但它有效,但仅适用于DATE或TIME(我的字段名称)
在您的情况下,列的名称是“时间”,那么为什么使用date(time)
而不是简单time
?尝试简单地订购:
SELECT * from history WHERE GROUP BY channel order by time DESC;
答案 1 :(得分:0)
在Sqlite数据库中,日期类型不是NSDate类型,它充当字符串,因此它不会根据日期对您的记录进行排序。你必须以其他方式做到这一点。