sql >> Databasteknik >  >> RDS >> Mysql

Ta bort återkommande data i en kolumn

Du kan bibehålla ett tillstånd medan du itererar som håller reda på om den aktuella raden är ett nytt namn/betald:

$last_name_seen = NULL;

while ($row = mysql_fetch_array($result)) {
    $firstname = "";
    $payable = "";
    if ($last_name_seen === NULL || $row['firstname'] != $last_name_seen) {
        $last_name_seen = $row['firstname'];
        $firstname = $row['firstname'];
        $payable = $row['payable'];
    }
    echo '<tr>';
    echo '<td style="border: 1px solid black;">'.$firstname.'</td>';
    echo '<td>'.$payable.'</td>';
    echo '<td>'.$row['product'].'</td>';
    echo '<td>'.$row['qty'].'</td>';
    echo '</tr>';
}

Observera att din MySQL-fråga bör ha någon ORDER BY klausul, för att generera den ordning du vill ha, t.ex.

ORDER BY Name, Product;

Som kommentarerna ovan också antyder, om du använder ett föråldrat PHP API bör du överväga att uppgradera till något mer modernt. Men logiken som används i ovanstående loop skulle inte förändras mycket med att ändra MySQL API.



  1. SQL för att returnera fält med icke-numeriska tecken borttagna i MySQL

  2. Hur MAKE_SET() fungerar i MariaDB

  3. SQL Server trigger infoga värden från ny rad till en annan tabell

  4. Hur kontrollerar man om alla fält är unika i Oracle?