我有一个查询,如:
SELECT id,name,province,enabled
FROM customers
WHERE enabled = 1 AND (name LIKE "%to%" OR province LIKE "%to%");
在MAC或IPAD上使用相同的数据库给我不同的结果。
在Mac上,它按预期工作并返回11条记录,而在iPad上,则返回55条记录?(奇怪的是,其中一些使能字段= 0)确实很奇怪。
iPad应用程序是使用Xcode6在Objective C中完成的
我想在两个设备上sqlite3的版本不完全相同,并且对括号优先级的解释也不同。
找到了。
故事,当应用程序加载时,它将清空数据库,并从其下载的xml中填充所有数据。
之后,它使用这样的更新语句更新一些记录,例如“ enabled”字段。
更新启用的客户集= 1其中date(some_date_field)> date('1980-12-01');
这里是问题所在:
更新启用的客户集= 1其中some_date_field> date('1980-12-01');
因此,在这种情况下正确地认为两个相同但实际上不相等的数据是正确的,这就是为什么我看到不同结果的原因。
而且由于无法从ipad获取数据库(不再越狱),这让我感到困惑,这以及每次在模拟器中运行应用程序时都会更改的Documents Directory并没有真正帮助:(
感谢大家的关注。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句