php – 将字符串与数字字段进行比较,返回意外结果
发布时间:2020-12-13 14:15:05 所属栏目:PHP教程 来源:网络整理
导读:鉴于表: CREATE TABLE IF NOT EXISTS `users` ( `id` bigint(20) NOT NULL AUTO_INCREMENT,`name` varchar(100) NOT NULL,PRIMARY KEY (`id`)) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ; 添加几行: INSERT INTO `users` (`id`,`name`) VAL
鉴于表:
CREATE TABLE IF NOT EXISTS `users` ( `id` bigint(20) NOT NULL AUTO_INCREMENT,`name` varchar(100) NOT NULL,PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ; 添加几行: INSERT INTO `users` (`id`,`name`) VALUES (NULL,'Bob'),(NULL,'Larry'),'Steve'); 为什么,OH为什么!此查询是否返回结果: SELECT * FROM `users` WHERE id = "2this-is-not a numeric value" 结果: query returned 1 row(s) in 0.0003 sec id name ----------------- 2 Larry where子句中使用的字符串显然被转换为数值 – 谁说这样做?!我找不到任何暗示mysql或PHP会假定自动转换我的字符串文字的文档. 这仅在数字字符是字符串中的第一个字符时才有效,“此2不是数字”不会返回结果. “12 2”将变为12,“1 2”(单空格2)变为1. 任何解释此行为的文章或文档将不胜感激.
这是在MySQL文档中:
http://dev.mysql.com/doc/refman/5.1/en/type-conversion.html (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |