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

クエリ数を減らすためにクエリ結果を複数にする方法は?

    PDOは、誰もが思っているよりも少し多いです。たとえば、 PDO ::FETCH_GROUP と呼ばれるすばらしい機能があります。 。

    コードを劇的に短くすることができる他の小さな改善は言うまでもありません。

    $r = $handler->query("SELECT confirmed, c.* FROM comments c")->fetchAll(PDO::FETCH_GROUP);
    

    必要なコードはすべて揃っています。

    ここでは、confirmedを選択しています 最初にフィールドを作成してから、値に基づいて結果をグループ化(または「乗算」)するようにPDOに指示します。

    そして今、あなたはあなたが望むところならどこでもあなたのコメントを印刷することができます

    // Awaiting Comments
    foreach($r[0] as $r_) {
        echo "<li>$r_[title]</li>";
    }
    
    // Confirmed comments
    foreach($r[2] as $r_) {
        echo "<li>$r_[title]</li>";
    }
    

    または、1つのループにまとめる

    $titles = [
        0 => 'Awaiting Comments',
        2 => 'Comments waiting confirmation',
        1 => 'Confirmed Comments',
    ];
    
    foreach ($titles as $code => $title)
    {
        echo "<h3>$title</h3>";
        foreach($r[$code] as $r_) {
            echo "<li>$r_[title]</li>";
        }
    }
    


    1. 複数のテーブル選択とJOIN(パフォーマンス)

    2. phpとmysqlを使用したログイン/登録システム

    3. 16の異なるクエリ例を使用したMySQLのWHERE条件

    4. SQLServer結果セットの行を制限する方法