MYSQL/PHP:';AS';xnumber始终为正数

MYSQL/PHP:';AS';xnumber始终为正数,php,mysql,Php,Mysql,我在代码中遇到了一道墙,我需要总数始终为正 所以有一个随机产生的乘数。它可以是-1或1 $query = "SELECT *, A * $MULTIPLIER1 + B * $MULTIPLIER2 + C * $MULTIPLIER3 AS totalnumber FROM data_table ORDER BY totalscore DESC LIMIT 2" 这段代码本身是有效的。但是,如果有太多的负乘数,“totalnumber”将变为负数,从而破坏订单 我需要“totalnumber

我在代码中遇到了一道墙,我需要总数始终为正

所以有一个随机产生的乘数。它可以是-1或1

$query = "SELECT *, A * $MULTIPLIER1 + B * $MULTIPLIER2 + C * $MULTIPLIER3 AS totalnumber FROM data_table
ORDER BY totalscore DESC
LIMIT 2"
这段代码本身是有效的。但是,如果有太多的负乘数,“totalnumber”将变为负数,从而破坏订单


我需要“totalnumber”始终为正数,而不篡改a、B、C乘法器,这意味着Amulti、Bmulti、C*multi可以为负数,从而更改totalnumber。我希望这是有道理的。。。我该怎么做呢?

您可以将最终结果平方,然后取平方根,或者最好使用
ABS
运算符。

abs-返回数字的绝对值

echo abs(-15);
15
您也可以在MySQL中执行此操作

您可以使用
abs()
将负片转换为正片。但是,我怀疑您想要
grest()


这会将任何负值转换为0。

所以我可以。。。选择ABS(总数)??选择ABS(A*$MULTIPLIER1+B*$MULTIPLIER2+C*$MULTIPLIER3)作为总数,根据我的数学和我愚蠢的系统设置,它会得到不同的结果,看起来不正确。如果#为负数,是否有可能颠倒描述的顺序?我需要负数来影响总数。然而,我只需要总数是正数。如中所示,如果乘法器使总数为-10,那么它只需要是+10。@user251566。在许多情况下,将负数的值设为0(或者1)是有意义的。
SELECT ABS(-15);
15
GREATEST(A * $MULTIPLIER1 + B * $MULTIPLIER2 + C * $MULTIPLIER3, 0) AS totalnumber