Mysql执行报错-Truncated incorrect DOUBLE value: 'CSYS.CONTENT_PAGE'

执行sql报错:

update hpfm_lov_value hlv 
set hlv.lov_code = (SELECT hl.lov_code from hpfm_lov hl WHERE hl.lov_id = hlv.lov_id) 
WHERE hlv.lov_id = hlv.lov_code

报错信息:Truncated incorrect DOUBLE value: 'CSYS.CONTENT_PAGE'

错误原因:hlv.lov_id为bigint类型,hlv.lov_code为varchar,进行比较的时候,如果是在作为select语句的where条件不会有问题,但是作为update语句的where条件就会将两个字段都转化为浮点数进行比较,这时候就会报错。

解决方案:将bigint类型的字段转化为字符串进行比较

update hpfm_lov_value hlv 
set hlv.lov_code = (SELECT hl.lov_code from hpfm_lov hl WHERE hl.lov_id = hlv.lov_id) 
WHERE CONCAT(hlv.lov_id,'')  = hlv.lov_code;
发布了19 篇原创文章 · 获赞 2 · 访问量 2456

猜你喜欢

转载自blog.csdn.net/Azhuzhu_chaste/article/details/100176726
今日推荐