我正在处理我的数据库库中的bug,它在内部使用了LibPQ。我看到以下对我来说很奇怪的行为:
对于postgreSql数据类型DATE
,如果在DB中为空,则返回true
对于postgreSql数据类型TIME
,如果在DB
但对于VARCHAR,SMALLINT ..如果在DB中它们是空的,则返回false。
PS。我还没有检查其他数据类型
答案 0 :(得分:0)
空字符串和零(0)与NULL不同。运行此查询的一种形式,以查看您的字段存在多少NULL与空字符串:
SELECT COALESCE(<field_name>,'NULL'), COUNT(*)
FROM <table_name>
WHERE <field_name> = ''
OR <field_name> IS NULL
GROUP BY 1
将此查询中的空字符串('')替换为零以检查数字字段。