算不了。仅具有特定列的空值的行

时间:2013-04-25 07:08:03

标签: android sqlite count

我正在创建一个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 ....因为有四行,其中这些列是空的。 我似乎无法弄清楚问题。 请帮助。 谢谢!

2 个答案:

答案 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)