Mysql - 结果集与查找两个数字之间的差异不符合预期[关闭]
Posted
技术标签:
【中文标题】Mysql - 结果集与查找两个数字之间的差异不符合预期[关闭]【英文标题】:Mysql - Result set not as expected in finding difference between two numbers [closed] 【发布时间】:2020-10-06 15:55:10 【问题描述】:预期输出为正数,但尽管给出了最高数 - 最低数,但仍有负差。
【问题讨论】:
你不能那样使用列,你可以使用用户定义的变量或者使用原始代码 请看:Why should I provide an MCRE for what seems to me to be a very simple SQL query?new price
在通常的引号中是一个 string,从该 string 中减去一个数值可能会导致意外结果
【参考方案1】:
您的代码有 2 个问题:
-
您不能使用像
new price
这样的派生列来执行任何
计算
不要使用单引号将列名/别名括起来。您可以安全地使用反引号。'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
【讨论】:
以上是关于Mysql - 结果集与查找两个数字之间的差异不符合预期[关闭]的主要内容,如果未能解决你的问题,请参考以下文章