【发布时间】: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