如何检查SQLite数据库中列的值是否为null,如果它是Blob类型?
我像这样获取一个Cursor:
public Cursor fetchArticle(int i) throws SQLException {
Cursor mCursor = mDatabase.query(true, "api_content",
new String[] { "_id", "ArticleName", "ArticleText","ImageLink", "Image" },
KEY_ID + "=" + i, null, null, null, null, null);
if (mCursor != null) {
mCursor.moveToFirst();
}
return mCursor;
}
如何检查Image列的索引4的值是否为空?我尝试过以下方法:
articleCursor.getBlob(4) == null
,其中articleCursor
是有效的Cursor(返回false)为了使问题更加复杂,当我打印articleCursor.getBlob(4)[0]
时,它会返回78
或91
等值,这些值与我认为null
的任何内容都不相似。
同样,数据库不可能在该列中包含任何数据;它必须为null。有任何想法吗?谢谢!
答案 0 :(得分:0)
方法getBlob()始终具有值。如果此列的值为空或为null,则在使用方法长度时,结果为1.
示例:
byte[] image = cursor.getBlob(cursor.getColumnIndex("image"));
if(image.length == 1) {
//column data is empty
} else{
//column has data
}
我希望它可以帮到你。
答案 1 :(得分:-2)
请在下面查询中获取值Y或N
select id,
case
when myblob is not null then 'Y'
else 'N'
end,
myblob
如果blob为null,则返回N else Y。