sql >> Database teknologi >  >> RDS >> Mysql

PHP matematik på SQL-data

Så du siger, at du har

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

og du vil beregne produktet af de primære diagonale indgange (der ses bort fra id kolonne)?

Det fremgår ikke klart af dit spørgsmål, om det er det, du vil gøre, eller om du bare vil beregne data1 * data2 * data3 for hver række.

Hvis det er sidstnævnte:Du bør gøre dette i MySQL. Tilføj en ekstra kolonne til kolonnelisten i din select-sætning:

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

Hvis det er førstnævnte:Du bør gøre dette i PHP i stedet for MySQL. Du kan gøre dette ved at opsætte et multidimensionelt array.

Du har sandsynligvis kode, der ser sådan ud:

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

Vi ændrer det til følgende:

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

Nu hvis du tilføjer følgende:

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

du vil se, at vi har et todimensionelt array.

Hvis vi nu ønsker at finde produktet af de diagonale indgange i det array, kan vi bruge dette:

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



  1. Konverter fra DateTime til INT

  2. Filtrering på et alias i mysql

  3. Viser tidligere forespørgselslog - MySQL

  4. Ser på Database Snapshot Performance