データをアップデートするときの sql を検討しています。
・category , name を評価
・既存レコードと合致すれば、update
・なければ insert
データが以下であった時、
category 1, name aaa , data d07
であれば、id 1 を update し
category 4, name aaa , data d07
category 3, name bbb , data d07
category 1, name ddd , data d07
であれば、id 7 で insert したいと考えています。
id | category | name | data |
---|---|---|---|
1 | 1 | aaa | d01 |
2 | 1 | bbb | d02 |
3 | 1 | ccc | d03 |
4 | 2 | aaa | d04 |
5 | 2 | ddd | d05 |
6 | 3 | aaa | d06 |
------ | --------- | ------------ | --------- |
category , name はいずれも重複を許可しています。(unique ではありません)
id, category , name に PRIMARY KEY を設定すれば、REPLACE INTO でいけるかと思ったのですが、意図した動作にはなりませんでした。
REPLACE INTO tmp (category, name, data) VALUES (1, 'aaa' , 'd07');
普通に insert されます。。。
うまいやり方があれば、ご教示お願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2016/09/03 10:34