挺有意思的,以前还真没发现。
查了一下mysql会自动的进行类型转换:
代码:
结果:
代码:
结果:
代码:
结果:
show warnings;
Warning 1292 Truncated incorrect DOUBLE value: '5adsafasfasf'
根据这些执行结果,我的结论是mysql将字符串的从左到右获取出数字部分,将其转化为Double类型,然后进行运行计算或者匹配。如果没有取到数字部分,则转化为0。
另外:sql-mode的设置也会对插入和转化的值产生影响
[url]http://dev.mysql.com/doc/refman/5.0/en/server-sql-mode.html[/url]
查了一下mysql会自动的进行类型转换:
代码:
SELECT 1+'1';
结果:
2
代码:
SELECT 1+'adsafasfasf';
结果:
1
代码:
SELECT 1+'5adsafasfasf';
结果:
6
show warnings;
Warning 1292 Truncated incorrect DOUBLE value: '5adsafasfasf'
根据这些执行结果,我的结论是mysql将字符串的从左到右获取出数字部分,将其转化为Double类型,然后进行运行计算或者匹配。如果没有取到数字部分,则转化为0。
另外:sql-mode的设置也会对插入和转化的值产生影响
[url]http://dev.mysql.com/doc/refman/5.0/en/server-sql-mode.html[/url]