mysql 算术函数中的单引号

mysql single quote in arithmatic functions

在mysql中,如果我做类似

的事情
round((amount * '0.75'),2)

它似乎工作得很好,就像 0.75 没有单引号一样。 mysql 处理这个的方式有什么不同吗?

为了解决这个问题,这里有一个 link 解释了表达式求值中的类型转换:https://dev.mysql.com/doc/refman/5.5/en/type-conversion.html

When an operator is used with operands of different types, type conversion occurs to make the operands compatible. Some conversions occur implicitly. For example, MySQL automatically converts numbers to strings as necessary, and vice versa.

mysql> SELECT 1+'1';
        -> 2

在您的情况下,MySQL 会看到算术并对表达式中包含的任何字符串执行隐式转换。将字符串转换为数字时会听到一些声音,但可以忽略不计。我的偏好是显式键入一个数字而不是引用它。该方法帮助我提高了代码的清晰度和可维护性。