我的目标是使用Android Gingerbread及更高版本的特定电子邮件地址从本机数据库获取所有行。
此查询仅获取案例也匹配的行。
Cursor cursor = context.getContentResolver().query(ContactsContract.CommonDataKinds.Email.CONTENT_URI,
new String[] {Contacts._ID}, ContactsContract.CommonDataKinds.Email.ADDRESS + "=?",
new String[] {email}, null);
我已经读过有关sql的WHERE子句,其中一个使用lower('xx'),但我无法弄清楚如何使用它。另外,我了解到你可以在创建表时使列不关心案例,但是那艘船已经航行了。
答案 0 :(得分:21)
也可以尝试
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
。
答案 1 :(得分:8)
请尝试(我想邮件是String对象):
Cursor cursor = context.getContentResolver().query(ContactsContract.CommonDataKinds.Email.CONTENT_URI,
new String[] {Contacts._ID}, "lower("+ContactsContract.CommonDataKinds.Email.ADDRESS + ")=lower('"+ email +"')",
null, null);
或
Cursor cursor = context.getContentResolver().query(ContactsContract.CommonDataKinds.Email.CONTENT_URI,
new String[] {Contacts._ID}, "lower("+ContactsContract.CommonDataKinds.Email.ADDRESS + ")=lower('"+ email +"')",
new String[] {}, null);
答案 2 :(得分:0)
Cursor cursor = this.db.query("UserTbl", new String[] {"UserId",
"Username", "Password" },
"Username = ? COLLATE NOCASE AND Password = ? COLLATE NOCASE", new String[] { userNameString,
passwordString }, null, null, null);