如果 id 未知则添加记录否则更新记录

add record if id is not known else update the record

我在 mariadb 中有以下 table:

-id = 自动递增的键 -价格 -数量 -姓名 -order_id

order_id 可以在 table 中出现两次,但名称和 order_id 的组合应该是唯一的。我现在有 name 和 order_id 的组合。

我想做的是,如果名字和order_id的组合不在table中,就添加一条记录。 如果它在,那么我想要 change/get 金额值。

是否有一个很好的查询来完成这个?

此致

我喜欢为此使用 on duplicate key update。您需要首先在 nameorder_id:

上创建唯一索引
create unique index ix_table_orderid_name on table(order_id, name);

然后 insert 看起来像:

insert into table(price, amount, name, order_id)
    values (@price, @amount, @name, @order_id)
    on duplicate key update amount = values(amount), price = values(price);

这会将 table 中的值替换为新值。您也可以增加它们。你的问题不清楚具体操作。