1.sql更新异常:
当更新条件值是被强制转换的类型时,容易引发异常:
例子:
UPDATE fin_gl_accounting_detail SET deleted_at=0
WHERE src_biz_id IN (10909);
报错:
1292 - Truncated incorrect DOUBLE value: ‘201203FINCON00042’, Time: 0.002000s
原因是因为 src_biz_id字段是String类型,但是我传递的是int类型,数据库中存在无法String转int的数值存在,比如’哈哈哈’,猜测sql执行的时候全表扫描,发现有两种不同数据类型的数据,一种int一种String,就报错了。
解决办法,传字段对应的类型。
UPDATE fin_gl_accounting_detail SET deleted_at=0
WHERE src_biz_id IN ('10909');
2.数据末尾有空格情况下,程序执行sql和数据库直接执行sql查询数据不一致