android - 如何在 Android 中使用 ContentResolver 进行不区分大小写的查询?

标签 android sqlite

我的目标是在 Android Gingerbread 及更高版本上从具有特定电子邮件地址的 native 数据库中获取所有行。

此查询仅获取大小写也匹配的行。

Cursor cursor = context.getContentResolver().query(ContactsContract.CommonDataKinds.Email.CONTENT_URI,
            new String[] {Contacts._ID}, ContactsContract.CommonDataKinds.Email.ADDRESS + "=?",
            new String[] {email}, null);

我读过有关使用 lower('xx') 的 sql 的 WHERE 子句,但我不知道如何使用它。我还了解到你可以在创建表时让列不关心大小写,但那艘船已经航行了。

最佳答案

也试试

Cursor cursor = context.getContentResolver().query(ContactsContract.CommonDataKinds.Email.CONTENT_URI,
            new String[] {Contacts._ID}, ContactsContract.CommonDataKinds.Email.ADDRESS + "=? COLLATE NOCASE",
            new String[] {email}, null);

请注意,在查询中添加了 COLLATE NOCASE

关于android - 如何在 Android 中使用 ContentResolver 进行不区分大小写的查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12566207/

相关文章:

android - 使用 createMaterialBottomTabNavigator for android 在选项卡之间滑动

android - 从多个模块编译一个 .aar 库文件

mysql - 每个数据库提供程序类型允许的最大参数数是多少?

mysql - 如何在android中将Mysql DB导入到SQlite中?

sqlite - JPA EntityManager不在SQLite数据库中提交更改

mysql - 如何正确编写子查询来获取每个帖子的评论数量?

perl - 如何查询 sqlite 的某些行,即将其分成页面(perl DBI)

android - 试图避免 Grow heap (frag case)

java - logcat 报告推送未正确启用

android - AlertDialog自定义布局 View 无法访问android