我的行的堆栈值而不是多个

Stack value of my row instead of having multiple

所以我有一个 table 看起来像这样:

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);