Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/228.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/8/mysql/58.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
PHP/MYSQL:如果为负,则按ASC排序;如果为正,则按DESC排序,并带有AS子句_Php_Mysql_Sql - Fatal编程技术网

PHP/MYSQL:如果为负,则按ASC排序;如果为正,则按DESC排序,并带有AS子句

PHP/MYSQL:如果为负,则按ASC排序;如果为正,则按DESC排序,并带有AS子句,php,mysql,sql,Php,Mysql,Sql,所以有一个随机产生的乘数。它可以是-1或1 $query = "SELECT *, A * $MULTIPLIER1 + B * $MULTIPLIER2 + C * $MULTIPLIER3 AS totalnumber FROM data_table ORDER BY totalscore DESC LIMIT 4" 这段代码本身是有效的。但是,如果有太多的负乘数,“totalnumber”将变为负数,从而破坏订单 如果数字是负数,我需要“totalnumber”来反转顺序。如果“总数”为

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

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

如果数字是负数,我需要“totalnumber”来反转顺序。如果“总数”为正,则下降。可能吗

基本上如果我有

  • 二十
  • 十五
  • -五,
  • -十,
  • 然后变成(负数可以变成abs(值))

  • 二十
  • 十五
  • 十,
  • 五,

  • 或者可以按totalnumber(100,-100,99,-99等)订购吗?

    您可以使用两部分的
    订购方式来订购:

    order by (totalnumber > 0) desc,
             abs(totalnumber) desc
    

    您可以使用由两部分组成的“订购人”

    order by (totalnumber > 0) desc,
             abs(totalnumber) desc