Mysql-在查找两个数字之间的差异时,结果集不符合预期
Mysql-在查找两个数字之间的差异时,结果集不符合预期,mysql,sql,mysql-workbench,Mysql,Sql,Mysql Workbench,预期输出为正数,但尽管给出了最高值-最低值,但得到了负差值。您的代码有两个问题: 不能使用诸如newprice之类的派生列来执行任何操作 计算 不要使用单引号括起列名/名称。您可以安全地使用backticks。 类似于'new price'的列在用于执行数值计算时被评估为0,因为它被视为字符串文字'new price' 因此,您的代码可以这样编写: SELECT name, unit_price, unit_price * 1.1 AS `new price`,
预期输出为正数,但尽管给出了最高值-最低值,但得到了负差值。您的代码有两个问题:
newprice
之类的派生列来执行任何操作
计算类似于
'new price'
的列在用于执行数值计算时被评估为0
,因为它被视为字符串文字'new price'
SELECT name,
unit_price,
unit_price * 1.1 AS `new price`,
unit_price * 1.1 - unit_price AS `diff price`, -- or unit_price * 0.1 AS `diff price`
FROM products
您不能以这种方式使用列,您可以使用用户定义的变量或使用原始代码请参见:
newprice
在常用引号中是一个字符串,从该字符串中减去数值可能会导致意外结果