当我尝试在我的Android SQLite DB上比较文本时,我遇到了问题。
我有一个这样的查询:
select * from myTable where _id='some.text.dots.are.really.there!'myTable是TEXT PRIMARY KEY。我正在尝试选择和更新表中的一些数据。当我执行SELECT *时,会返回它们。
Android代码(带有where子句)如下所示:
mDb.query(TABLE_TRANSACTIONS, TABLE_TRANSACTIONS_COLUMNS, COLUMN__ID + " = ?",
new String[] {id }, null, null, null);但
mDb.query(TABLE_TRANSACTIONS, TABLE_TRANSACTIONS_COLUMNS, COLUMN__ID + " = '" + id + "'",
null, null, null, null);两者都不起作用。如何在安卓系统上比较SQLite中的文本值?
发布于 2012-10-04 16:14:57
我发现了问题:例程对I进行了加盐处理,因此它们与纯文本字符串不同。
愚蠢的错误...不管怎样,谢谢你们。
发布于 2012-10-04 00:24:31
在比较字符串时,SQLite还会考虑TEXT CASE (大小写),因此您可以使用COLLATE NOCASE,这会强制SQLite忽略TEXT CASE。
试试这个:
SELECT *
FROM myTable
WHERE _id='some.text.dots.are.really.there!'
COLLATE NOCASE; 您可以使用rawQuery进行选择:
mDb.rawQuery('Query Here',null);和用于插入/更新/删除的executeQuery:
mDb.executeQuery('Query Here',null);https://stackoverflow.com/questions/12712086
复制相似问题