安卓SQLite选择IS NOT NULL

3

我正在尝试从数据库表中检索仅为非空的数据,但是IS NOT NULL子句似乎无效。 空字段也被显示。

我想要检索那些没有null值的信息,但是使用IS NOT NULL语句好像不起作用,会把有空值的字段也一并显示出来。

String sql = "SELECT _id, nome_sotto FROM Categorie
 WHERE nome_categoria = '"+i.getStringExtra("categoria")+"' 
AND nome_sotto IS NOT NULL ORDER BY nome_sotto  ASC";

private void list() {
SQLiteDatabase db = mHelper.getReadableDatabase();
final List<Dettaglio> dettagli = new ArrayList<Dettaglio>();

String sql = "SELECT _id, nome_sotto FROM Categorie
 WHERE nome_categoria = '"+i.getStringExtra("categoria")+"' 
AND nome_sotto IS NOT NULL ORDER BY nome_sotto  ASC";

Cursor c = db.rawQuery(sql, null);

    while (c.moveToNext()){
        Dettaglio d = new Dettaglio();

        d.id = c.getString(0);
        d.sottocat = c.getString(1);                                

        dettagli.add(d);
    }
    c.close();


db.close();

ListAdapter adapter....
}

请分享输出结果,告诉我们你得到了什么响应。 - Hitesh
如果是一个空字段,输出将是 ListView 的空行。 - user3608814
添加一些日志记录以捕获查询结果,然后将其添加到您的问题中。同时展示您发出查询并处理结果的代码。 - Graham Borland
可能该值是包含“null”的字符串。 - njzk2
你确定 _id 字段是字符串吗?通常在数据库查询中它是 long 类型,而 CursorAdapter 期望它是 long 类型。 - Graham Borland
1个回答

1

空值和null不是同一个概念。如果你想要过滤掉空值和null值,你需要添加:AND nome_sotto != ''


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接