【问题标题】:IS NOT NULL is still returning null values in my queryIS NOT NULL 在我的查询中仍然返回空值
【发布时间】:2019-04-19 01:43:07
【问题描述】:

我正在使用 Loader 进行查询,该查询使用 CursorLoader 和适当的参数来派生值。

我正在使用 recyclerview 来显示数据。

如果在我的 SELECTION 参数中不使用 IS NOT NULL,这与 WHERE 子句相同,我的 recylerview 会显示 2 个空白行。当我在我的选择子句中添加 IS NOT NULL 时,删除了一个空白行,并且仍然保留了一个。

下面是我的简单选择条款

    String SELECTION = ContactsContract.CommonDataKinds.StructuredPostal.CITY + " IS NOT NULL ";

    switch (id) {
        case LOADER_ID:
            return new CursorLoader(
                    getContext(),
                    ContactsContract.CommonDataKinds.StructuredPostal.CONTENT_URI,
                    FROM_COLUMNS,
                    SELECTION ,
                    null,
                    ContactsContract.CommonDataKinds.StructuredPostal.CITY + " ASC"
            );

【问题讨论】:

  • 它真的是一个空值而不仅仅是一个空字符串吗? (即'')
  • 好问题。它被处理该字段的其他方法读取为 null。如果有其他方法可以在 SQL 中检查 NULL,我可以将它们作为 OR 子句添加到 SELECTION。

标签: android sql where-clause contactscontract sql-null


【解决方案1】:

我使用“ ''”而不是 IS NOT NULL

【讨论】:

  • 有些系统会在加载之前将查询读取到文件中,在这些情况下,空值会被编码为空字符串。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-08-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-04
相关资源
最近更新 更多