php根据字段比较,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`) VALUES (NULL , 'Bob'),(NULL , 'Larry'),(NULL , '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.

任何解释此行为的文章或文档将不胜感激.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值