sql >> データベース >  >> RDS >> Mysql

列内の繰り返しデータを削除する

    現在の行が新しい名前/支払い可能であるかどうかを追跡する反復中に、いくつかの状態を維持できます:

    $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>';
    }
    

    MySQLクエリにはORDER BYが必要であることに注意してください 句、必要な順序を生成します。例:

    ORDER BY Name, Product;
    

    上記のコメントも示唆しているように、非推奨のPHP APIを使用している場合は、より新しいものへのアップグレードを検討する必要があります。ただし、上記のループで使用されるロジックは、MySQLAPIを変更してもあまり変わりません。



    1. 4000文字を超えるXMLをOracleXMLTYPE列に挿入します

    2. MySQLレプリケーションとGTIDベースのフェイルオーバー-誤ったトランザクションの詳細

    3. SQL Server(T-SQL)で2つのパーティションを1つにマージする

    4. 最後の(最新の)明確な最高値を取得する