Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql-在查找两个数字之间的差异时,结果集不符合预期_Mysql_Sql_Mysql Workbench - Fatal编程技术网

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
    之类的派生列来执行任何操作 计算
  • 不要使用单引号括起列名/名称。您可以安全地使用backticks。
    类似于
    '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
    在常用引号中是一个字符串,从该字符串中减去数值可能会导致意外结果