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

MySQLで複数の行をマージする方法は?

    すべての列に集計関数を適用してから、 GROUP BY idを適用できるはずです。 :

    select id,
      max(name) name,
      max(age) age,
      max(grade) grade
    from yourtable
    group by id
    

    SQL Fiddle withDemo を参照してください。

    DB構造に関する限り、私が目にする唯一の問題は、同じユーザーに対して複数のレコードを挿入していることです。 UPDATEを使用する必要があります 挿入する代わりに値を使用するステートメント。

    REPLACE> MySQLの関数(チュートリアルはこちら

    したがって、クエリは次のようになります。

    REPLACE 
      INTO yourtable (`id`, `name`, `age`, `grade`) 
      VALUES (0, 'john', 11, null);
    

    SQL Fiddle withDemo を参照してください。



    1. SQLでのCREATETABLE–SQLでのテーブルの作成について知っておくべきことすべて

    2. hibernate、mysql、glassfish v3、およびJTAデータソース

    3. @DataJpaTestのSpringBoot1.4.1で組み込みH2DBにmode=mysqlを追加するにはどうすればよいですか?

    4. SQLServerで「WITHRESULTSETS句が1つの結果セットを指定したためにEXECUTEステートメントが失敗しました…」を修正する方法