mysql在将主键id与主键的md5进行比较后检索错误的结果

时间:2018-04-05 06:43:49

标签: mysql phpmyadmin

我的MYSQL结果截图:

My MYSQL Result Screenshot

当我运行查询时,我已经传递了105个id的md5,但是它返回了一个id为65的行。

1 个答案:

答案 0 :(得分:2)

这是一个相当常见的错误,会不时出现在这里。发生的事情是WHERE子句中的值:

65b9eea6e1cc6bb9f0cd2a47751a186f

是一个字符串,但是您要与customer_id列进行比较,该列可能是一个整数。由于MySQL的强制转换规则,超出前两个数字的字符串中的所有内容都将作为强制转换的一部分被丢弃。所以你真的只是将6565进行比较,从而得出结果集中的记录。

对于解决方案,不要将UUID与整数列进行比较。如果您正在搜索65,请在搜索时使用该号码。