问题
出现这种问题一般来说就是多表操作的时候, 使用的字段类型不一致导致的(查询除外),我们来看下真实案例
在hd_user
表中parentId是binint类型 而在hd_user_increment_copy1
`表中parentId是varchar类型, 如果只是查询的话那么是不会报错的,我把查询sql提出了运行是可以的
是不是就无语了,为啥查询里可以,那么在update中就不行 ,研究了半天我也没搞懂只能推给mysql查询内部进行优化了在比对数据时候都转换为字符串进行比较,但是一旦掺杂增删改
那么就不会进行类型自动转换为字符串,而是使用原始类型进行比较, 然后在比较的时候发现类型不一致进行报错了
解决办法
解决方案是将数据类型都转换为一样的即可
通过上面的启发,我又试了试插入,将查询出来的数据插入到一个相同结构的空表里,发现还是上面的问题
解决办法一样,加上数据类型转换即可