Android SQLite查询列不为空且不为空

cfr*_*frz 16 sqlite android android-sqlite

我无法弄清楚.query调用的语法.我需要选择与某个列匹配的所有记录,这些列对于第二个(不同的)列没有空值或空值

我最好的尝试:

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);
Run Code Online (Sandbox Code Playgroud)

这将返回所有记录.如果我使用AND代替OR,它返回与hospitalId匹配的记录,但忽略NOT NULL或NOT""部分.

有小费吗?我应该使用rawQuery调用吗?谢谢.

Bla*_*der 45

我相信正确的语法是:

AND key IS NOT NULL AND key != ""
Run Code Online (Sandbox Code Playgroud)

key你的专栏在哪里


Hug*_*lla 6

如果您的列中可以有多个空格,并且您还想将它们视为空值,请使用TRIM

column_name IS NOT NULL AND TRIM(column_name," ") != ""
Run Code Online (Sandbox Code Playgroud)