gpt4 book ai didi

mysql - 使用不同条件更新多个 MySQL 行

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

我有一个像这样的 MySQL 表:

purchases

id | item | price
-----------------
1 | 1 | 12.07
2 | 3 | 14.24
3 | 4 | 13.12
4 | 2 | 11.28

其中 id 是主键,item 是唯一的(但不是唯一键)。假设我需要调整大约一半的值,如下所示:

purchases

id | item | price
-----------------
1 | 1 | 12.07
2 | 3 | 3.24 << changed
3 | 4 | 13.12
4 | 2 | 5.92 << changed

并假设我拥有所有需要更新的商品/价格对。我可以这样写我的更新:

UPDATE purchases SET price = 3.24 WHERE item = 3;
UPDATE purchases SET price = 5.92 WHERE item = 2;

但是假设这个表有 100 万行长,我需要更新 50 万行。我不想运行五十万条更新语句。有没有一种方法可以在给定所有商品/价格对的一个查询中执行此操作?

我已经查看了 ON DUPLICATE KEY 语法,但我认为这不会起作用,因为 item 不是我表中的主键,即使对于这个查询,我希望它表现得像一个。

最佳答案

您可以将键和新值插入到临时表中,并在更新查询中将其连接起来。像这样

update your_table 
join temp_table on your_table.item = temp_table.item
set your_table.price = temp_table.new_price

关于mysql - 使用不同条件更新多个 MySQL 行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48412171/

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