用MySQL自动浇注\的字符串转换为数值?
这是如何转换的作品?
- '1234'= 1234?
- '1ABC'= 1?
- '文本'= 1?
鉴于units.id
是BIGINT类型,如何查询将作何解释?
SELECT table.*
FROM table
WHERE id='text'
用MySQL自动浇注\的字符串转换为数值?
这是如何转换的作品?
鉴于units.id
是BIGINT类型,如何查询将作何解释?
SELECT table.*
FROM table
WHERE id='text'
你的前三个问题的答案是:是的,是的,没有。
当字符串'text'
被转换为数字,则它变成值0
。
描述的类型转换的文档是在这里 。
为了您的查询:
SELECT table.*
FROM table
WHERE id='text';
该规则是由从文档的摘录捕获:
在其他情况下,参数相比,浮点(实)数。
换句话说,这实际上相当于:
WHERE id = 0.0
MySQL的默认治疗1和“1”一样的,但是你可以通过MySQL的行为设定严格的模式,改变这种状况。
set @@GLOBAL.sql_mode = "STRICT_ALL_TABLES";
set @@SESSION.sql_mode = "STRICT_ALL_TABLES";
或者你可以在你的my.cnf文件中设置这些变量是永久性sql_mode = ''
。 如果使用了不正确的类型这样,MySQL将抛出一个错误。 阅读http://dev.mysql.com/doc/refman/5.0/en/server-sql-mode.html了解更多详情
如同任何DBMS,它的隐式转换。
对于其他类型,根据MySQL文档,你必须使用转换/施放功能http://dev.mysql.com/doc/refman/5.0/en/cast-functions.html
下面是SO一个例子: 将文本转换成数MySQL查询