修改表中满足特定条件的字段值

eg:

把这个
select * from xss_order_detail od
join xss_order o on o.order_id = od.order_id
where o.platform = ‘semitemu’
and od.product_sku = ‘P030017601BEU’
and o.country_code = ‘IT’
and o.currency = ‘USD’
and o.order_no = ‘ST-PO-098-19617058294390208’;
指定条件的xss_order_detail表里面的product_quantity字段的值修改为2

可以使用以下 UPDATE 语句,通过 JOIN 关联条件定位目标记录:

UPDATE xss_order_detail od
JOIN xss_order o ON o.order_id = od.order_id
SET od.product_quantity = 2
WHERE o.platform = 'semitemu'
  AND od.product_sku = 'P030017601BEU'
  AND o.country_code = 'IT'
  AND o.currency = 'USD'
  AND o.order_no = 'ST-PO-098-19617058294390208';

执行步骤与安全验证

1.先预览要修改的记录(必做)
SELECT od.*, o.order_no, o.platform
FROM xss_order_detail od
JOIN xss_order o ON o.order_id = od.order_id
WHERE o.platform = 'semitemu'
  AND od.product_sku = 'P030017601BEU'
  AND o.country_code = 'IT'
  AND o.currency = 'USD'
  AND o.order_no = 'ST-PO-098-19617058294390208';

确认查询结果是否为预期要修改的记录,避免误操作。

2. 使用事务执行更新(推荐)
START TRANSACTION;  -- 开启事务

UPDATE xss_order_detail od
JOIN xss_order o ON o.order_id = od.order_id
SET od.product_quantity = 2
WHERE o.platform = 'semitemu'
  AND od.product_sku = 'P030017601BEU'
  AND o.country_code = 'IT'
  AND o.currency = 'USD'
  AND o.order_no = 'ST-PO-098-19617058294390208';

SELECT ROW_COUNT();  -- 查看受影响的行数

COMMIT;  -- 确认无误后提交事务
-- 若有误,执行 ROLLBACK; 回滚
关键说明

1.表别名一致性:
xss_order_detail 别名 od,xss_order 别名 o,与原查询保持一致。
2.字段修改范围:
SET od.product_quantity = 2 明确指定修改 xss_order_detail 表的字段,避免歧义。
3.条件完整性:
WHERE 条件与原查询完全一致,确保仅修改目标记录。

注意事项

数据备份:

-- 备份原数据(可选但推荐)
CREATE TABLE xss_order_detail_backup_20250627 AS
SELECT od.* FROM xss_order_detail od
JOIN xss_order o ON o.order_id = od.order_id
WHERE o.platform = 'semitemu'
  AND od.product_sku = 'P030017601BEU'
  AND o.country_code = 'IT'
  AND o.currency = 'USD'
  AND o.order_no = 'ST-PO-098-19617058294390208';
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值