Mysql 如何在“选择公式”字段中使用括号

Mysql 如何在“选择公式”字段中使用括号,mysql,select,mariadb,formula,parentheses,Mysql,Select,Mariadb,Formula,Parentheses,实际表格和选择太长,所以我将使用简单的示例来回答我的问题 我有一个表(tbl_price),有两列(price1,price2) 当选择字段时,像这样简单地选择 SELECT price1-price2 from tbl_price 我没有问题,直到 在select中使用括号,则不会返回任何记录: SELECT (price1-price2) from tbl_price 实际上,我想这样选择: SELECT (price1-price2)/price2*100 from tbl_pr

实际表格和选择太长,所以我将使用简单的示例来回答我的问题

我有一个表(tbl_price),有两列(price1price2) 当选择字段时,像这样简单地选择

 SELECT price1-price2 from tbl_price
我没有问题,直到 在select中使用括号,则不会返回任何记录:

 SELECT (price1-price2) from tbl_price
实际上,我想这样选择:

 SELECT (price1-price2)/price2*100 from tbl_price

也许您正在尝试用PHP处理结果

试着这样做:

在MySql中:

SELECT ((price1-price2)/price2*100) AS result FROM tbl_price
在PHP中:

echo($row['result']);
我发现了问题!
我的字段是unsigned int。所以结果将是unsigned,并且不会返回任何记录。但如果我将列更改为signed。结果将是正常的

请参见示例。我怀疑您在实际运行的查询中(不是在上面的简化示例中)有语法错误,但您没有检查错误。所以“没有记录将返回”实际上意味着无法成功解析查询。解决方案:每次准备或执行查询时都检查错误。我检查了,结果为空。没有发生错误(我的本地数据库是Mariadb),我发现如果使用+(price1+price2),它将工作,但使用-(price1-price2)将不会返回任何记录。为什么?在mariadb上没有问题,在mysql中是空的:(