【问题标题】:Android SQLite query where column is not null and not empty列不为空且不为空的 Android SQLite 查询
【发布时间】:2015-07-12 21:45:16
【问题描述】:

我无法弄清楚 .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 调用吗?

【问题讨论】:

    标签: android sqlite android-sqlite


    【解决方案1】:

    我相信正确的语法是:

    AND key IS NOT NULL AND key != ""
    

    key 是您的

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

      • 甚至 TRIM(column_name) 因为默认使用空格作为修剪字符。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-01-13
      • 2015-07-07
      • 1970-01-01
      • 1970-01-01
      • 2012-08-08
      • 2011-04-05
      • 1970-01-01
      相关资源
      最近更新 更多