在项目测试时,发现一个查询相关的问题:在测试环境测试时,查询结果不正常。根据排查,是查询一个带字符串字段的查询条件时,传入int整型数据。具体来说,传入0导致触发了mysql的隐式类型转换。将字符串字段转换成整型进行比较,从而没有前导数字的纯字符串数据被转换成整型0,从而触发了查询条件,返回为真,导致查询到错误数据。最终,将传入查询条件转换为字符串'0',从而解决了这个问题。
以后设计数据库或者查询条件时,一定要注意类型一致,避免触发隐式类型转换造成问题。
在项目测试时,发现一个查询相关的问题:在测试环境测试时,查询结果不正常。根据排查,是查询一个带字符串字段的查询条件时,传入int整型数据。具体来说,传入0导致触发了mysql的隐式类型转换。将字符串字段转换成整型进行比较,从而没有前导数字的纯字符串数据被转换成整型0,从而触发了查询条件,返回为真,导致查询到错误数据。最终,将传入查询条件转换为字符串'0',从而解决了这个问题。
以后设计数据库或者查询条件时,一定要注意类型一致,避免触发隐式类型转换造成问题。