概要
LOAD DATA を用いてcsv ファイルをインポートする際、
インポートするデータの条件指定は可能なのでしょうか?
調べたのですが実現方法がわからず、どなたかご教授いただければと思います。
やりたいこと
下記のデータが入ったcsvファイルがあり、
id | name | updated_at |
---|---|---|
1 | A | 20170810 |
2 | B | 20170815 |
3 | C | 20170815 |
4 | D | 20170815 |
5 | E | 20170815 |
インポートする対象のテーブルにはすでに下記のようなデータがはいっていて、
id | name | updated_at |
---|---|---|
1 | A | 20170809 |
2 | B | 20170830 |
3 | C | 20170830 |
4 | D | 20170830 |
以下のようなルールでcsvファイルを対象テーブルにインポートしたいと思います。
- csvファイルと対象のテーブルで同じデータがある場合、
csv ファイルの updated_at
とテーブルの updated_at
を比較し、
csv ファイルの updated_at
の方が大きければテーブルのデータを更新する。
→name=Aのデータのみ更新される
- csvファイルにデータがあってテーブルにはデータがない場合は新規挿入する。
→csvファイルのid=5のデータが新規にテーブルに挿入される
このようなことは可能なのでしょうか?
mysql だけではできない場合は、phpでの実現を考えています。
ご教授お願いいたします。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。