Как вернуть все значения всех столбцов и наибольшее значение column_name в один выбор - PullRequest
0 голосов
/ 28 ноября 2018

Чтобы вернуть все значения всех столбцов и значение наибольшего значения определенного столбца, я получаю таким образом (два выбора)

$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)) {

   ?????????

И, если возможно, как можно вывести на экран результаты

Ответы [ 2 ]

0 голосов
/ 28 ноября 2018

вы можете использовать вложенный запрос, как было сказано

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, с правильным максимальным значением

0 голосов
/ 28 ноября 2018
 $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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...