【发布时间】:2014-05-23 07:31:28
【问题描述】:
我在 SQLite 中的一个查询有问题。 我正在用java为android写一个简单的聊天。
我从服务器上的数据库中获取数据并将它们插入到设备上的本地数据库中。 我想收到每个用户的最后一条消息。
当我从 MySQL 获取数据时,它是正确的,但是在 SQLite 上执行相同的查询(我复制了它)时,我又得到了一行。 MySQL和SQLite在代码实现上有区别吗?
SELECT _id, od, do, tresc, godzina
FROM wiadomosci w
WHERE
(od = "Aaaa" AND _id =
(SELECT max(_id) FROM wiadomosci
WHERE (od = "Aaaa" AND do = w.do) OR (do = "Aaaa" AND od = w.do)))
OR
(do = "Aaaa" AND _id = (
SELECT max(_id) FROM wiadomosci
WHERE (do = "Aaaa" AND od = w.od) OR (od = "Aaaa" AND do = w.od)))
地点:
- od - 消息来自谁,
- do - 消息发给谁,
- tresc - 消息内容,
- godzina - 发送了一个小时的消息
对不起,我的英语不好。
【问题讨论】:
-
此查询依赖于自动递增的
_id列。是吗?即使您从服务器复制记录? -
是的,_id 是整数主键(在 SQLite 中它是自动增量的)。 MySQL 和 SQLite 上的 ID 相同。当我从服务器获取行时,id 也被插入到 sqlite
-
显示一些示例行和实际/期望的结果。
标签: java android mysql sql sqlite