首页 > 代码库 > MySQL 整型字段中查询字符串,返回了所有为0的结果
MySQL 整型字段中查询字符串,返回了所有为0的结果
在MySQL中,在整型字段中查询字符串,返回了所有为0的结果,应该返回null或空。
例如表结构信息:
CREATE TABLE `t` ( `name` char(20) COLLATE utf8mb4_unicode_ci DEFAULT NULL, `id` int(11) NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
表中数据:
mysql> select id from t; +----+ | id | +----+ | 0 | | 0 | | 1 | +----+
查询字符串a,返回了所有是0 的:
mysql> select id from t where id=‘a‘; +----+ | id | +----+ | 0 | | 0 | +----+
警告信息:
mysql> show warnings; +---------+------+---------------------------------------+ | Level | Code | Message | +---------+------+---------------------------------------+ | Warning | 1292 | Truncated incorrect DOUBLE value: ‘a‘ | +---------+------+---------------------------------------+
查询字符串‘1a‘,可以返回1:
mysql> select id from t where id=‘1a‘; +----+ | id | +----+ | 1 | +----+
报警信息:
mysql> show warnings; +---------+------+----------------------------------------+ | Level | Code | Message | +---------+------+----------------------------------------+ | Warning | 1292 | Truncated incorrect DOUBLE value: ‘1a‘ | +---------+------+----------------------------------------+
这种情况不经常遇到,解决办法是在程序中进行数据类型的判断,对前端传入的值进行校验
欢迎批评指正
本文出自 “Amnesiasun” 博客,请务必保留此出处http://amnesiasun.blog.51cto.com/10965283/1931639
MySQL 整型字段中查询字符串,返回了所有为0的结果
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。