Mysql
 sql >> база данни >  >> RDS >> Mysql

PHP математика върху SQL данни

Значи казвате, че имате

id data1 data2 data3
1  2.5   2.6   2.7
2  2.6   7.0   8.2
3  3.0   1.8   6.0

и искате да изчислите произведението на главните диагонални записи (без внимание на id колона)?

От въпроса ви не става ясно дали това е, което искате да направите, или просто искате да изчислите data1 * data2 * data3 за всеки ред.

Ако е последното:Трябва да направите това в MySQL. Добавете допълнителна колона към списъка с колони в оператора за избор:

SELECT
    id,
    ...,
    data1 * data2 * data3 AS product
FROM
    ...

Ако е първото:Трябва да направите това в PHP, а не в MySQL. Можете да направите това, като настроите многоизмерен масив.

Вероятно имате код, който изглежда така:

while ( $row = mysqli_fetch_assoc($query_result) ) {
    echo $row['id'].' '.$row['data1'].' '.$row['data2'].' '.$row['data3'];
}

Ще го променим на следното:

$myarray = array();
while ( $row = mysqli_fetch_assoc($query_result) ) {
    $myarray[] = array($row['data1'], $row['data2'], ['data3']);
}

Сега, ако добавите следното:

echo '<pre>';
var_dump($myarray);
echo '</pre>';
';

ще видите, че имаме двуизмерен масив.

Сега, ако искаме да намерим продукта на диагоналните записи в този масив, можем да използваме това:

$product = $myarray[0][0] * $myarray[1][1] * $myarray[2][2];



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Node.js Използване на async/await с mysql

  2. MySQL двоен главен

  3. MySQL - Как да анализирам стойност на низ във формат DATETIME в инструкция INSERT?

  4. Mysql - Как да търсите 26 записа, всеки от които започва с буквата на азбуката?

  5. MySQL:не е в GROUP BY