一尘不染

MySQL自动将字符串转换/转换为数字?

mysql

MySQL是否会自动将字符串转换为数字值?
转换如何进行?

  • ‘1234’= 1234吗?
  • ‘1abc’= 1?
  • ‘文本’= 1?

给定那units.id是bigint类型的,该查询将如何解释?

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

阅读 2162

收藏
2020-05-17

共1个答案

一尘不染

前三个问题的答案是:是,是和否。

当字符串'text'转换为数字时,它将成为value 0

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

对于您的查询:

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

该摘录摘自文档:

在所有其他情况下,将参数作为浮点数(实数)进行比较。

换句话说,这实际上等效于:

WHERE id = 0.0
2020-05-17