Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


¿Cómo hago una consulta insensible a mayúsculas con ContentResolver en Android?

Mi objetivo es obtener todas las filas de db nativo con una dirección de correo electrónico específica en Android Gingerbread y superiores.

Esta consulta obtiene sólo las filas donde el caso también coincide.

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

He leído acerca de las cláusulas WHERE para sql donde se utiliza una más baja ('xx') pero no puedo entender cómo usarlo. También he aprendido que puede hacer que la columna no se preocupe por el caso al crear la mesa, pero que la nave ha navegado.

  • Prueba de base de datos SQLite en Robolectric
  • Cómo convertir milisegundos a la fecha en SQLite
  • Tipos de datos utilizados en SQLite
  • SQLite externo Contenido del archivo que accede al error
  • Obtener mínimo de la columna de la base de datos SQLite?
  • ¿La desinstalación de una aplicación android borra la base de datos almacenada en sdcard?
  • ¿Cómo puedo almacenar un arraylist de objetos personalizados?
  • SQLite Android. No puede abrir el archivo de base de datos
  • 3 Solutions collect form web for “¿Cómo hago una consulta insensible a mayúsculas con ContentResolver en Android?”

    Intente por favor (supongo que el correo es un objeto String):

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

    o

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

    Intenta también

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

    Tenga en cuenta que agregó COLLATE NOCASE en la consulta.

     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); 
    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.