Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/77.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 我需要根据结果颠倒顺序_Php_Sql_Mysqli - Fatal编程技术网

Php 我需要根据结果颠倒顺序

Php 我需要根据结果颠倒顺序,php,sql,mysqli,Php,Sql,Mysqli,我需要在某一列中获得3行值最低的数据,然后颠倒这3行的顺序。因此,如果值最低的3行是A、B和C,我需要将它们排序为C、B和A。我可以在一个SQL语句中这样做吗 $sql = "SELECT * FROM ratings_table ORDER BY rating DESC LIMIT 3"; $result = mysqli_query($conn, $sql); $resultCheck = mysqli_num_rows($result); if ($resultCheck > 0)

我需要在某一列中获得3行值最低的数据,然后颠倒这3行的顺序。因此,如果值最低的3行是A、B和C,我需要将它们排序为C、B和A。我可以在一个SQL语句中这样做吗

$sql = "SELECT * FROM ratings_table ORDER BY rating DESC LIMIT 3";
$result = mysqli_query($conn, $sql);
$resultCheck = mysqli_num_rows($result);
if ($resultCheck > 0) 
{
    while ($row = mysqli_fetch_assoc($result)) 
    {
        echo "<td>".$row['rating']."</td>";
    }
}

使用此代码,我将得到正确的结果,但顺序错误。

您将希望使用子查询,如下所示:

SELECT * 
FROM
   (
     SELECT * 
     FROM ratings_table 
     ORDER BY rating ASC LIMIT 3
   ) a 
ORDER BY rating DESC

这将得到最低的三个结果,然后将顺序颠倒。

只有子查询可以工作。首先选择3个最低值,然后对它们进行排序

比如:

SELECT * FROM (
      SELECT <COLUMN_VALUE>
        FROM <YOUR_TABLE>
    ORDER BY <COLUMN_VALUE> LIMIT 3
) T
ORDER BY <COLUMN_VALUE> DESC 

订购人。。。DESC?ORDER BY v DESC…需要查看您的查询。您可以按任意顺序按多列排序:例如:从供应商处选择Id、公司名称、城市、国家,其中“美国”、“日本”、“德国”的国家/地区按国家/地区ASC、公司名称DESCI发布我的查询。它给了我正确的结果,但顺序错误。我尝试了这个,但没有改变我结果的顺序!我甚至试着在末尾加上ASC和DESC,但没什么区别。哦,糟糕的是,这确实有效,我犯了一个错误。非常感谢。不要添加重复答案如果您有其他方法,请更新您的答案
$sql = "SELECT * FROM ratings_table ORDER BY rating DESC LIMIT 3";
$result = mysqli_query($conn, $sql)->fetch_all();
krsort($result)
foreach ($result as $row) 
{
    echo "<td>".$row['rating']."</td>";
}