最近我将我的 Nexus One 更新为 Froyo (2.2),我注意到 SQLite 的一些明显不同的行为。
例如,我一直在使用子查询(返回字符串数据)作为 IN 子句的一部分,而子查询部分似乎不再正常工作。我在下面附上了一个使用联系人数据库的示例 SQL 查询(直接查询仅用于说明目的):
SELECT _id FROM data WHERE display_name IN (SELECT display_name FROM contacts);
直到 Android 2.1 这都不是问题。然而,在更新之后,这将返回一个空记录集,除非我单独运行子查询,将每个结果值括在单引号中并将这些值直接附加到 IN 子句中。
我注意到我正在处理的多个应用程序中的这种功能损失,但我应该注意,当结果是数字而不是基于字符串时,它似乎确实有效。
有没有其他人遇到过这个问题?