背景:
通过sql更新某个长数字字符串字段+1,结果变成了科学记数
例如:
初始数据如下,更新id+1

执行sql:
UPDATE test set id = id + 1
结果如下:

原因:数据类型不同,需要进行转换后相加,如果是较长的字符串数字, 相加后会从自动转为科学记数,再转为字符串
解决方法:使用CONVERT函数(用于将值转换为指定的数据类型或字符集)
sql如下:
UPDATE test set id = CONVERT(id, SIGNED) + 1 where id = 6202112151530242
PS:这是一个很初级的问题,一般没遇到也不会发现,仅此记录一下
在执行SQL更新操作时,如果字段包含长数字字符串并直接进行+1操作,可能会导致数据变为科学记数法。这是因为数据类型不匹配。解决方法是使用CONVERT函数将字符串转换为SIGNED类型后再进行加法运算,例如:UPDATE test SET id = CONVERT(id, SIGNED) + 1 WHERE id = 6202112151530242。这是一个关于SQL数据类型转换和字符串数字处理的问题。
608

被折叠的 条评论
为什么被折叠?



