大量のデータを更新するSQL文を作成しようとしています。MySQLのマージ量は2行です
は私が持っていることは同じTRANSIDを持つ2つの行は、私はそのTRANSIDとの最初の1の合計の列に結果を入れて、それらを合計し、第二を配置する必要がありますあります
id, transid, amount, narative1, narative 2, total, active
1 1234 23.2 NULL NULL NULL 1
2 1234 120.33 NULL NULL NULL 1
3 1235 98.00 NULL NULL NULL 1
のようなテーブルであります最初のインスタンスのnaritive2の量と2番目のインスタンスを非アクティブにする。これは、transidのための単一の行を無視する必要があります。
私が何をしたいの結果は次のようになります。
id, transid, amount, narative1, narative 2, total, active
1 1234 23.2 NULL 120.33 143.53 1
2 1234 120.33 NULL NULL NULL 0
3 1235 98.00 NULL NULL NULL 1
私はひもツイスターのビットを知っているが...
理想的には私はちょうどMySQLの文でこれを実行したいのですが。だから私は複数のSQLステートメントを実行する必要はありませんが、私はPHPなどに接続することを避けたいです。その非常に大きなデータセットです。
正確に更新されるものは何ですか?あなたの例ではわずかな値しか変更されていません。更新したい値はどこから取ってくるのですか?あなたは手でこれをしたいですか?すべてのエントリ/値を手作業でSQL文を書くのと同じですか? – markus
行1と2からの金額が合計されます。 23.2 + 120.33 = 143.53 となり、合計が第1行に入れられる。 2番目の行が非アクティブ化されます。 –