MySQL关联外键时出现报错 查询结果显示负数而非预期1、2、3、5
MySQL外键关联查询返回异常负数问题排查方案
- 首先排查关联字段属性一致性:主表主键与从表外键字段的有无符号属性必须完全一致。如果主表主键为
INT UNSIGNED,从表外键为带符号INT,关联时的隐式类型转换会触发数值溢出,最终返回负数结果。 - 排查SQL模式配置:执行
SHOW VARIABLES LIKE 'sql_mode';查看是否开启了NO_UNSIGNED_SUBTRACTION参数,无符号数值运算得到负结果时,会触发解析异常生成负数。 - 排查查询语句逻辑:确认关联查询中没有对关联字段执行减法、位运算等可能改变原始值的操作,先单独查询两张表的关联字段确认原始数据无异常后,再校验JOIN条件的准确性。

内容的提问来源于stack exchange,提问作者Aniruddh
相关产品推荐
相关产品推荐

