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

php/SQL-多くの条件で4つの名前ごとに4回多くの単語を出力します

    私はあなたの前の投稿とこれを読みました。私が考えた場合、基本的なことは、チームがあり、プレーヤーがいて、特定の標準化されたグループ(いわば)でデータを表示したいということです。

    ええと、あなたが常に比較している一定のデータがあり、それはチームのサイズです。

    私が行うことは、チームをプレーヤーの数でグループ化するサブクエリを作成し、これを次のように何らかの方法で使用することです。

    select t.*
           , x.total_players
           -- , row_number() over(order by t.team_name) row_id
    from team_table t
        join (
              select team_id
                    , count(1) total_playerss
              from team_table 
              group by team_id
             ) x on x.team_id = t.team_id
    order by t.team_name
    

    PHPで結果セットをエコーアウトする場合、次のような関数を作成できます。

    <?php
    
    function add_some_word($playerCount) {
    
    if ($playerCount >4 && $playerCount <= 8) {
    echo '*** SOME WORD***';
    echo '*** SOME WORD***';
    echo '*** SOME WORD***';
    }
    else if ($playerCount >4 && $playerCount <= 8) {
    echo '*** SOME WORD***';
    echo '*** SOME WORD***';
    }
    // etc.
    }
    
    ?>
    

    row_idを使用する 結果セットから、チームがいつ開始および終了するかを確認できます。

    したがって、行を吐き出すときは、次のようになります。 "

    <?php
    
    $currentTeamName = "";
    
    while ($row = pg_fetch_array($result,null,PGSQL_ASSOC)) {
    // echo data you would normally send out
    
    if ($currentTeamName != $row['team_name']) {
    add_some_word($row['total_players']);
    }
    
    }
    
    ?>
    

    私はあなたの質問が正しかったことを望みます。私はこれを素早く打ちのめしていますが、それが役立つと思いました!




    1. .Dtsxファイルからのバージョン番号の取得を自動化する

    2. PHPは、MySQLクライアントよりもクエリの実行に90倍の時間がかかります

    3. SQLでフィルターシステムを実装する方法は?

    4. MySQL挿入コマンドと例を含むT-SQLクエリ構文