gpt4 book ai didi

php - 基于现有行的受控表查询

转载 作者:行者123 更新时间:2023-11-29 12:29:17 25 4
gpt4 key购买 nike

我有一个 product_group 表,其中包含以下字段:group_id、product_id、order。该表将被大量查询:单一表单 View 将可以通过一次提交插入新记录和/或更新现有记录。

我正在尝试找出最佳解决方案来涵盖以下 3 种情况:

  1. 用户尝试插入现有行:不执行任何操作。这里 3 列的唯一索引可能很有用。

  2. 用户仅更改订单列:执行更新。

  3. 用户插入一组全新的值:执行插入。

有没有一种方法可以将所有这些放在一个 MySQL 查询中?如果不是,那么最好的方法是什么?目标是尽可能限制数据库查询。

最佳答案

这符合你的要求吗?

insert into product_group(group_id, product_id, `order`)
values (@group_id, @product_id, @order)
on duplicate key update `order` = values(`order`);

以及 group_id、product_id 上的唯一索引:

create unique index idx_product_group_2 on product_group(group_id, product_id)

这可以处理您的三种情况:

  1. 因为如果值相同,则赋值是无操作的。
  2. 如果其他两列具有相同的值,order 列将会更新。
  3. 将插入具有不同 group_idproduct_id 的新行。

请注意,order 对于列来说是一个糟糕的名称,因为它是一个 SQL 关键字。

关于php - 基于现有行的受控表查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27830512/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com