MySQL更新NULL字段,字段=字段+ 1个奇怪的行为

时间:2016-04-04 12:43:18

标签: mysql

不确定你是否在MySQL表面上遇到这种奇怪的行为:当表字段默认为NULL时,我做一个简单的UPDATE语句运行没问题。如果我要发出field=field+1,那么该值不会更新。然后我做的是将0插入字段并再次运行相同的field=field+1然后它就可以了。

UPDATE table1 SET field=field+1 WHERE id=123;

这是预期的行为吗?

p / s:field类型为double

2 个答案:

答案 0 :(得分:1)

如果您有一个空字段,那么可以使用更新。

//structure
UPDATE TableName SET column = IFNULL(column, 0) + 1 WHERE ...

//original
UPDATE table1 SET field = IFNULL(field, 0) + 1 WHERE id=123;

更多详情:function_ifnull

参考#mysql-update-increment-int-field-that-is-null

答案 1 :(得分:1)

这是因为

NULL+1 = NULL

所以你必须"欺骗"它为0。

UPDATE table1 SET field=COALESCE(field,0)+1 WHERE id=123;