Mysql 隐式转换

2022-11-10,,

表定义:

CREATE TABLE `ids` (
id int(11) not null auto_increment,
PRIMARY KEY (id)
);

表中存在一些IDs: 111, 112, 113, 114 等.

查询:

SELECT * FROM `ids` WHERE id = '112abcdefg'  

Msql会将sql处理成:

SELECT * FROM `ids` WHERE id = ''  

个人理解 Mysql会将从左到右的第一个非数值开始,将后面的字符串转成0,在和数值类型相加。(112 + 0【abcdefg】)

同样在PHP或者JS弱类型语言中

如果使用字符串和数字进行比较,会将字符隐形转换成数字

Mysql 隐式转换的相关教程结束。

《Mysql 隐式转换.doc》

下载本文的Word格式文档,以方便收藏与打印。