MySQL的自动转换/字符串转换为数字?MySQL的自动转换/字符串转换为数字?(MySQL aut

2019-05-12 09:21发布

用MySQL自动浇注\的字符串转换为数值?
这是如何转换的作品?

  • '1234'= 1234?
  • '1ABC'= 1?
  • '文本'= 1?

鉴于units.id是BIGINT类型,如何查询将作何解释?

SELECT table.* 
FROM table 
WHERE id='text'

Answer 1:

你的前三个问题的答案是:是的,是的,没有。

当字符串'text'被转换为数字,则它变成值0

描述的类型转换的文档是在这里 。

为了您的查询:

SELECT table.* 
FROM table 
WHERE id='text';

该规则是由从文档的摘录捕获:

在其他情况下,参数相比,浮点(实)数。

换句话说,这实际上相当于:

WHERE id = 0.0


Answer 2:

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了解更多详情



Answer 3:

如同任何DBMS,它的隐式转换。

对于其他类型,根据MySQL文档,你必须使用转换/施放功能http://dev.mysql.com/doc/refman/5.0/en/cast-functions.html

下面是SO一个例子: 将文本转换成数MySQL查询



文章来源: MySQL automatically cast/convert a string to a number?