执行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;