即使值为null,Sqlite查询返回0

use*_*538 7 sqlite android

以下是我用来获取对应于我的sqlite db表中特定字段的int值的查询.

"SELECT conn_status FROM profiles WHERE devID = '" + id+"'"
Run Code Online (Sandbox Code Playgroud)

如果没有为与提供的devID相对应的'conn_status'保存值,则表中的现有值将为null.我从java检索数据,如下所示:

c.getInt(c.getColumnIndex("conn_status"))
Run Code Online (Sandbox Code Playgroud)

这里的问题是,使用给定的查询,即使字段中存在的值为null,c.getInt也会返回0.如何修改此查询,如果值为null,则返回不同的值而不是0,例如5.

任何帮助表示赞赏.

Geo*_*its 17

你可以使用这个isNull()功能.这是一个例子:

static int getInt(String columnName)
{
    if(c.isNull(c.getColumnIndex(columnName)))
        return -1;
    return c.getInt(c.getColumnIndex(columnName));
}
Run Code Online (Sandbox Code Playgroud)


CL.*_*CL. 16

在SQLite中,您可以使用该IFNULL函数替换NULL值:

SELECT IFNULL(conn_status, 5) FROM profiles WHERE devID = ?
Run Code Online (Sandbox Code Playgroud)