在Postgres 9.3中,当表中的字段具有空值时,以下表达式不起作用:
update table_statatistic set members = members + 1 WHERE user_id = $1;
但是,当该字段具有整数值时,此查询会将其递增1而不会出现问题。
问题是:
答案 0 :(得分:6)
您需要使用coalesce来检查空值
update table_statatistic set members = coalesce(members, 0) + 1 WHERE user_id = $1
答案 1 :(得分:2)
使用COALESCE()
代替:
COALESCE
函数返回其非空的第一个参数。仅当所有参数都为null时才返回Null。当检索数据用于显示时,它通常用于替换默认值为空值
UPDATE table_statatistic SET members = COALESCE(members,0) + 1 WHERE user_id = $1;