mysql 在查字符串字段中 条件参数传为数字0查到与实际数据不匹配问题

时间:2021-08-14 22:06:33

比如:

CREATE TABLE `e` (
`id` int(11) DEFAULT NULL,
`status` varchar(255) DEFAULT NULL,
`b` varchar(255) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

mysql 在查字符串字段中 条件参数传为数字0查到与实际数据不匹配问题

用数字查字符串会把字符串数据转化为数字开头,所有非数字开头字符串都是以0开头 故查到以下数据

 

mysql 在查字符串字段中 条件参数传为数字0查到与实际数据不匹配问题

 

mysql 在查字符串字段中 条件参数传为数字0查到与实际数据不匹配问题

用数字2查则匹配到2开头的字符串

mysql 在查字符串字段中 条件参数传为数字0查到与实际数据不匹配问题

 

用和数据类型相同的条件查则没有问题

mysql 在查字符串字段中 条件参数传为数字0查到与实际数据不匹配问题

 总结:

mysql 中:用数据作为条件查询字符串会出现于查询结果不匹配的现象

用0会查到所有非数字开头的字符串

用其他数字查则会匹配到与之对应数字开头的字符串