web-dev-qa-db-fra.com

Android Requête SQLite où la colonne n'est pas nulle et non vide

Je ne peux pas comprendre la syntaxe de l'appel .query. Je dois sélectionner tous les enregistrements qui correspondent à une certaine colonne qui n'ont pas de valeur nulle ou vide pour une deuxième colonne (différente)

ma meilleure tentative:

Cursor cursor = mDatabase.query(DatabaseOpenHelper.TABLE_ROOMS, mAllColumns,
    DatabaseOpenHelper.KEY_ROOM_HOSPITAL_ID
    + " =? AND " + DatabaseOpenHelper.KEY_ISO + " IS NOT NULL OR NOT ?",
    new String[]{String.valueOf(hospitalId), ""}, null, null, null);

Cela renvoie TOUS les enregistrements. Si j'utilise AND à la place de OR, il renvoie des enregistrements correspondant à hospitalId, mais ignore la partie NOT NULL OR NOT "".

Des conseils? Dois-je utiliser un appel rawQuery?

16
cfrz

Je crois que la syntaxe correcte serait:

AND key IS NOT NULL AND key != ""

key est votre colonne

48
BladeCoder

Si plusieurs espaces peuvent se trouver dans votre colonne et que vous souhaitez également les traiter comme des valeurs vides, utilisez TRIM

column_name IS NOT NULL AND TRIM(column_name," ") != ""
0
Hugo Matilla