Android 比较文本变量不起作用
当我尝试在Android SQLite DB上比较文本时,遇到了一些问题 我有这样一个问题:Android 比较文本变量不起作用,android,sqlite,Android,Sqlite,当我尝试在Android SQLite DB上比较文本时,遇到了一些问题 我有这样一个问题: select * from myTable where _id='some.text.dots.are.really.there!' mDb.query(TABLE_TRANSACTIONS, TABLE_TRANSACTIONS_COLUMNS, COLUMN__ID + " = ?", new String[] {id }, null, null, null); myT
select * from myTable where _id='some.text.dots.are.really.there!'
mDb.query(TABLE_TRANSACTIONS, TABLE_TRANSACTIONS_COLUMNS, COLUMN__ID + " = ?",
new String[] {id }, null, null, null);
myTable是文本主键。我正在尝试选择并更新表中的一些数据。当我执行SELECT*时,存在并返回
带有where子句的Android代码如下所示:
select * from myTable where _id='some.text.dots.are.really.there!'
mDb.query(TABLE_TRANSACTIONS, TABLE_TRANSACTIONS_COLUMNS, COLUMN__ID + " = ?",
new String[] {id }, null, null, null);
但是
两者都不起作用。如何在Android上比较SQLite中的文本值?SQLite在比较字符串时也会考虑文本大小写的大小写,因此可以使用COLLATE NOCASE,这会强制SQLite忽略文本大小写
试试这个:
SELECT *
FROM myTable
WHERE _id='some.text.dots.are.really.there!'
COLLATE NOCASE;
您可以使用rawQuery来选择:
mDb.rawQuery('Query Here',null);
和插入/更新/删除的执行任务:
mDb.executeQuery('Query Here',null);
SQLite在比较字符串时还考虑了文本大小写的大小写,因此可以使用COLLATE NOCASE,这迫使SQLite忽略文本大小写
试试这个:
SELECT *
FROM myTable
WHERE _id='some.text.dots.are.really.there!'
COLLATE NOCASE;
您可以使用rawQuery来选择:
mDb.rawQuery('Query Here',null);
和插入/更新/删除的执行任务:
mDb.executeQuery('Query Here',null);
我发现了这个问题:例程正在对ID进行盐析,因此它们不同于纯文本字符串
愚蠢的错误。。。无论如何,谢谢大家。我发现了问题:例程正在对ID进行盐析,因此它们不同于纯文本字符串
愚蠢的错误。。。无论如何,谢谢你们。这两种方法都可以,我会在调试器中仔细检查你们的ID,看看它们是否真的匹配。它们确实匹配。问题是:我正在从数据库获取id,并试图在代码中稍后的某个地方更新它,但它不起作用。好的,请将代码发布到不起作用的地方。两者都应该起作用,我会在调试器中仔细检查您的id,以查看是否真的匹配。它们确实匹配。问题是:我正在从数据库中获取id,并试图在代码中稍后的某个地方更新它,但它不起作用。好的,请将代码发布到不起作用的地方。