今天遇到一个更新的场景,即在更新某个字段值的时候,不是更新成新值,而是对原始数据进行追加内容。
第一反应想到的是 update table set remark = \'追加内容\' + remark where id = \'\'; 这种写法,即想到数字类型的操作,都是直接可以进行加减的,
但是由于该字段为varchar,执行后发现remark值变成了0,即:如果remark本来有值,且是字符,用这种更新会更新为0,如果remark值为数字,会保持原数字而不进行更新。
从而想到字符的拼接应该用concat,于是重新修改sql:
update table set remark = concat(\'新值\',remark) where id = \'\'; 这样写,更新成功。