sql >> Databáze >  >> RDS >> Mysql

Matematika PHP na datech SQL

Takže říkáte, že máte

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

a chcete vypočítat součin položek hlavní úhlopříčky (bez ohledu na id sloupec)?

Z vaší otázky není jasné, zda to je to, co chcete dělat, nebo zda chcete pouze vypočítat data1 * data2 * data3 pro každý řádek.

Pokud je to to druhé:Měli byste to udělat v MySQL. Přidejte další sloupec do seznamu sloupců ve vašem příkazu Select:

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

Pokud je to první:Měli byste to udělat v PHP spíše než MySQL. Můžete to udělat nastavením vícerozměrného pole.

Pravděpodobně máte kód, který vypadá nějak takto:

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

Změníme jej na následující:

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

Nyní, pokud přidáte následující:

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

uvidíte, že máme dvourozměrné pole.

Nyní, pokud chceme najít součin diagonálních položek v tomto poli, můžeme použít toto:

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



  1. Poddotaz pomocí Existuje 1 nebo Existuje *

  2. Skupiny dostupnosti AlwaysOn:Kvorum

  3. MySQL používá jiný index v závislosti na limitní hodnotě s dotazem ORDER BY

  4. Laravel mění parametry databáze za běhu