mysql中sql查询字符串到int自动转化
程序员文章站
2022-06-07 21:03:30
...
挺有意思的,以前还真没发现。
查了一下mysql会自动的进行类型转换:
代码:
结果:
代码:
结果:
代码:
结果:
show warnings;
Warning 1292 Truncated incorrect DOUBLE value: '5adsafasfasf'
根据这些执行结果,我的结论是mysql将字符串的从左到右获取出数字部分,将其转化为Double类型,然后进行运行计算或者匹配。如果没有取到数字部分,则转化为0。
另外:sql-mode的设置也会对插入和转化的值产生影响
http://dev.mysql.com/doc/refman/5.0/en/server-sql-mode.html
查了一下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的设置也会对插入和转化的值产生影响
http://dev.mysql.com/doc/refman/5.0/en/server-sql-mode.html