如何在不完全读取blob的情况下测试sqlite表中的blob是否不为null?

如何在不完全读取blob的情况下测试sqlite表中的blob是否不为null?,sql,sqlite,blob,Sql,Sqlite,Blob,我正在尝试查询具有blob列的表,并且需要过滤结果以仅提供blob列中包含内容(任何内容)的行 但是,执行从blob\u column不为NULL的表\u name中选择column\u name需要很长时间,我认为这是由于一些blob相当重。WHERE子句似乎正在读取blob的全部内容,并将它们与null进行比较 有没有一种方法可以在不让sqlite读取blob的全部内容的情况下测试blob列是否为null?因为使用or函数可以避免读取二进制数据(查询速度更快)。因此,为了避免不必要的开销,必

我正在尝试查询具有blob列的表,并且需要过滤结果以仅提供blob列中包含内容(任何内容)的行

但是,执行
从blob\u column不为NULL的表\u name中选择column\u name需要很长时间,我认为这是由于一些blob相当重。WHERE子句似乎正在读取blob的全部内容,并将它们与
null
进行比较

有没有一种方法可以在不让sqlite读取blob的全部内容的情况下测试blob列是否为null?

因为使用or函数可以避免读取二进制数据(查询速度更快)。因此,为了避免不必要的开销,必须进行更改

SELECT column_name FROM table_name WHERE blob_column IS NOT NULL

使用sqlite3\u blob\u read()
成功时返回SQLITE_OK。否则,会出现一个错误代码

中有一个相关问题,询问者希望得到水滴的实际大小,而不仅仅是它是否为空。哇!这是非常不直观的。
SELECT column_name FROM table_name WHERE LENGTH(blob_column) IS NOT NULL
SELECT column_name FROM table_name WHERE TYPEOF(blob_column) != 'null'