Mysql查询选择错误的记录
我有一个表用户作为Mysql查询选择错误的记录,mysql,select,Mysql,Select,我有一个表用户作为 id name status --------------------- 1 user1 1 2 user2 1 3 user3 1 当我运行此查询时,它将选择id为2的记录。为什么会这样?只有id为2时,我需要选择id为2的记录。我做了这样的询问 SELECT * FROM ( `users` ) WHERE `id` = '2a290cf764371'; 如何解决此问题?发生这种情况是因为您正在检查字
id name status
---------------------
1 user1 1
2 user2 1
3 user3 1
当我运行此查询时,它将选择id为2的记录。为什么会这样?只有id为2时,我需要选择id为2的记录。我做了这样的询问
SELECT *
FROM (
`users`
)
WHERE `id` = '2a290cf764371';
如何解决此问题?发生这种情况是因为您正在检查字符串与整数,因此
mysql
将字符串自动广播为整数,2a290cf764371
的整数是2
,不要进行这种比较,我建议您在执行查询之前将每个ID强制转换为int
,因为存在隐式类型转换。这意味着将'2a290cf764371'
转换为2
,然后与id
进行比较。要解决此问题,您必须在客户端上添加一些类型检查验证