我无法弄清楚.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调用吗?谢谢。
答案 0 :(得分:41)
我相信正确的语法是:
AND key IS NOT NULL AND key != ""
其中key
是您的列
答案 1 :(得分:0)
如果您的列中可以包含多个空格,并且您也想将它们视为空值,请使用TRIM
column_name IS NOT NULL AND TRIM(column_name," ") != ""