sql >> データベース >  >> Database Tools >> phpMyAdmin

MySQL-クエリは同じIDの行を結合し、そのIDのすべてのエントリを1つのレコードとして保持します

    問題は、MySQLに行を列挙する良い方法がないことです。 MySQLのドキュメントによると、残念ながら、定数の使用は機能することが保証されていません。多くの場合は機能しますが、問題が発生することもあります。

    名前を1つのフィールドに連結することをお勧めします。結果は次のようになります:

    1     tree,rose
    2     tree
    3     tree,bush,rose
    

    SQLの使用:

    select plantid, group_concat(name separator ',')
    from t
    group by plantid
    

    本当に別々の列に名前を入れたい場合は、2つのオプションが思い浮かびます。 1つは、上記の結果を使用してから、結果を個別の文字列に解析することです。もう1つの方法は、自己結合と集計を使用して、次のように連番を計算することです。

    select p.plantid, p.name, count(*) as seqnum
    from t p left outer join
         t pprev
         on p.plantid = pprev.plantid and
            p.name >= pprev.name
    group by p.plantid, p.name
    

    そして、これをサブクエリとして使用します。




    1. クエリエディタウィンドウのSSMS接続の変更

    2. SQL ManagementStudio2012でのデバッグ

    3. PHPMyAdminを使用してMySQLの重複行を削除するにはどうすればよいですか?

    4. #1193-phpmyadminにログインしようとしたときに不明なシステム変数「lc_messages」