当我尝试在我的 Android SQLite 数据库上比较 TEXT 时遇到问题。
我有这样的查询:
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);
两者都不起作用。我如何在 Android 上的 SQLite 中比较 TEXT 值?
最佳答案
SQLite 在比较字符串时还会考虑 TEXT CASE
(大写/小写),因此您可以使用 COLLATE NOCASE
,这会强制 SQLite 忽略 TEXT案例
.
试试这个:
SELECT *
FROM myTable
WHERE _id='some.text.dots.are.really.there!'
COLLATE NOCASE;
您可以使用 rawQuery 进行选择:
mDb.rawQuery('Query Here',null);
并为 INSERT/UPDATE/DELET 执行查询:
mDb.executeQuery('Query Here',null);
关于android - 比较 TEXT 变量不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12712086/