所以我有一个看起来像这样的表:
username - item - amount
user1 - sword - 1
user1 - sword - 1
user1 - sword - 1
user2 - sword - 1
user2 - sword - 1
我如何做到这一点,以便在我向一个用户添加项目时,他们像这样堆叠:
username - item - amount
user1 - sword - 3
user2 - sword - 2
添加项目的代码:
$sql = "insert into items (username, item, amount) values ('".$_SESSION['user_name']."', 'sword', '1')";
最佳答案
您需要为用户名和项目列创建唯一索引,并使用on duplicate key update
,因此,如果出现相同的用户名和项目对,则将现有金额与新值相加
create unique index items_username_item on items(username, item);
insert into items (username, item, amount)
values ('".$_SESSION['user_name']."', 'sword', '1')
on duplicate key update amount = amount + values(amount);