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

时间:2015-07-12 21:45:16

标签: android sqlite 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);

这将返回所有记录。如果我使用AND代替OR,则返回与hospitalId匹配的记录,但忽略NOT NULL OR NOT“”部分。

任何提示?我应该使用rawQuery调用吗?谢谢。

2 个答案:

答案 0 :(得分:41)

我相信正确的语法是:

AND key IS NOT NULL AND key != ""

其中key是您的

答案 1 :(得分:0)

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

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