我正在创建一个Android应用程序。其中我有一个没有列的数据库表。 从这些列我选择4个特定列并检查其中是否有空值或空值。 它应该给我一些空值的行数。 我使用的代码是
count=db.rawQuery("select * from "+AllValuesTable+" where (app_salutation IS NULL OR app_salutation='') AND (ref_cusagreeno IS NULL or ref_cusagreeno='') AND (asset_categry IS NULL or asset_categry='') AND (off_Applcname IS NULL or off_Applcname='');", null).getCount();
但我得到的输出是0,而它应该显示4 ....因为有四行,其中这些列是空的。 我似乎无法弄清楚问题。 请帮助。 谢谢!
答案 0 :(得分:0)
关于您有空格的可能性,在与''
比较之前可能值得修剪您的文件:
count=db.rawQuery
(
"select * from "+AllValuesTable+" where
(app_salutation IS NULL OR TRIM(app_salutation)='') AND
(ref_cusagreeno IS NULL OR TRIM(ref_cusagreeno)='') AND
(asset_categry IS NULL OR TRIM(asset_categry)='') AND
(off_Applcname IS NULL OR TRIM(off_Applcname)='')"
, null).getCount();
答案 1 :(得分:0)
我不知道为什么你的查询没有抛出异常,文件不是很清楚如果sql语句无效会发生什么。在任何情况下,您都不应以分号结束语句。
Official document
参数 sql的SQL查询。 SQL字符串不能是;终止
http://developer.android.com/reference/android/database/sqlite/SQLiteDatabase.html#rawQuery(java.lang.String,java.lang.String [],android.os.CancellationSignal)