Java MySQL查询在SQLite上不起作用
我在SQLite中的一个查询有问题。 我正在用java为android编写一个简单的聊天 我从服务器上的数据库获取数据,并将它们插入设备上的本地数据库。 我想获得每个用户的最后一条消息 当我从MySQL获取数据时,它是正确的,但是当执行相同的查询时,我在SQLite上复制了它,我又得到了一行。MySQL和SQLite之间的代码实现是否不同Java MySQL查询在SQLite上不起作用,java,android,mysql,sql,sqlite,Java,Android,Mysql,Sql,Sqlite,我在SQLite中的一个查询有问题。 我正在用java为android编写一个简单的聊天 我从服务器上的数据库获取数据,并将它们插入设备上的本地数据库。 我想获得每个用户的最后一条消息 当我从MySQL获取数据时,它是正确的,但是当执行相同的查询时,我在SQLite上复制了它,我又得到了一行。MySQL和SQLite之间的代码实现是否不同 SELECT _id, od, do, tresc, godzina FROM wiadomosci w WH
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-信息内容,
戈吉纳-一个小时的信息被发送出去了
很抱歉我的英语不好。MySQL有一些怪癖,包括它接受字符串的双引号。这不是标准的,因为双引号通常用于列名 如果将双引号更改为单引号,您可能会获得更大的成功:
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)))
此查询依赖于自动递增的_id列。它是?即使从服务器复制记录?是的,_id在SQLite中是整数主键,它是自动递增的。MySQL和SQLite上的ID是相同的。当我从服务器获取行时,id也被插入到sqliteShow中,显示一些示例行和实际/期望的结果。