簡體   English   中英

如何一次選擇返回所有列的所有值和column_name的最大值

[英]How to return all values of all columns and the highest value of column_name in one select

要返回所有列的所有值和特定列的最大值的值,我可以這樣做(兩個選擇)

$result = mysqli_query($conn,"SELECT max(colun3) AS max_c FROM table");
$rows = mysqli_fetch_array($result);
$maximo =  $rows["max_c"];

$result2 = mysqli_query($conn, "SELECT * FROM table");

while($rows2 = mysqli_fetch_array($result2)) {

    if($rows2['column3']==$maximo){
        $color = 'bgcolor=blue';
    }else{
        $color = '';
    }

    $var1 = $rows2['column1'];
    $var2 = $rows2['column2'];
    $var3 = $rows2['column3'];
    ...........

使用上面的代碼,我可以在屏幕上打印所需的內容,但是是否可以通過選擇來實現此結果呢? 就像是

$result = mysqli_query($conn,"SELECT *, max(colun3) AS max_c FROM table");

while($rows = mysqli_fetch_array($result)) {

   ?????????

如果可能的話,我如何在屏幕上打印結果

 $result = mysqli_query($conn,"SELECT *,(SELECT max(colun3) AS max_c FROM table) FROM table");

應該在其他查詢的每一行上添加max_c。

另外,建議不要使用*,而應寫每列。

要打印結果,您可以例如執行以下操作:

$assoc_array_of_results = mysqli_fetch_all($result,MYSQLI_ASSOC);
print_r($assoc_array_of_results);

您可以使用嵌套請求

SELECT *, (SELECT max(colun3) AS max_c FROM table) FROM table;

您還可以使用GROUP BY x WITH ROLLUP

SELECT *, MAX(colun3) FROM table GROUP BY YOUR_PRIMARY_KEY WITH ROLLUP

它應在結果的最后一行生成一行,其中除max列外的所有內容均為null,且最大值正確

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM