私は(再び)バッグと呼ばれるテーブルを持っています:
+--------+----------+---------+----------+
| bag_id | chara_id | item_id | item_qty |
+--------+----------+---------+----------+
| 1 | 1 | 2 | 22 |
| 2 | 1 | 1 | 55 |
| 3 | 3 | 1 | 2 |
| 6 | 3 | 4 | 2 |
| 7 | 4 | 4 | 2 |
| 8 | 5 | 4 | 2 |
| 9 | 6 | 4 | 2 |
| 10 | 1 | 5 | 1 |
| 14 | 1 | 8 | 1 |
| 15 | 1 | 6 | 1 |
| 18 | 1 | 4 | 1 |
| 19 | 1 | 3 | 1 |
| 29 | 8 | 1 | 1 |
| 30 | 8 | 7 | 1 |
| 33 | 6 | 2 | 1 |
+--------+----------+---------+----------+
そして私はこのSQLステートメントを持っています:
INSERT INTO bag(bag_id, chara_id, item_id, item_qty)VALUES(NULL, :id, :item_id,1)
重複を削除する方法を尋ねた後、
次に(重複をさらに制限するために)やりたいことは、ユーザーがバッグに既に存在するアイテムを購入すると、代わりに item_qty が 1 増加することです。
お気に入り:
if chara_id = exist and item_id exist
item_qty = item_qty + 1
else
#..normal insert
私が使用する場合:
INSERT INTO bag(bag_id, chara_id, item_id)VALUES(NULL, 1, 2)
item_qty を挿入するのではなく、23 に更新する必要があります。そのエントリは既に存在するためです。