android - 比较 TEXT 变量不起作用

标签 android sqlite

当我尝试在我的 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/

相关文章:

sql - 如何在 SQL 中使用集合?

java - 游标、SQLite 和查询

android - 对相同 Activity 的警报

android - Android ViewPager 中错误的位置值

java - 有没有办法在 TextView 中自动选择文本?

Android ActionBar 自定义布局样式

Android SQLite 按非主键列选择

ios - 打开 sqlite 数据库

python - 使 SQLalchemy 将字符串存储为小写的正确方法是什么?

java - android:使 ImageView 的一部分可选