我正在寻找一个简单的解决方案。我想更新 800 行数据。没有唯一的 ID,因此无法进行重复密钥更新。
我只显示了3行数据,但有超过800条。所以我想直接在数据库中更新产品列表的数量。
我尝试了这样的方法,但没有成功,我不知道为什么。我的代码不起作用。
UPDATE `xt_products` SET `products_quantity` = [Value-2] WHERE `products_model`= [Value-1]
('2','0'),
('3','1'),
('32','25'),
value-2 表示数据行的第二个输入 (0,1,25) value-1 表示数据行的第一个输入 (2,3,32)
当我只做一行时它有效:
UPDATE `xt_products` SET `products_quantity` = "25" WHERE `products_model`= "32"
专栏产品型号: 产品模型 varchar(255) utf8mb4_general_ci NULL
但是我如何将数据输入到命令中?值 1 和值 2 ?
我尝试了不同的方法来解决。但我没找到。
我想直接在数据库的sql命令字段中更新。
根据您给出的示例,您可以执行以下操作:
UPDATE `xt_products`
INNER JOIN (SELECT *
FROM (VALUES ROW('2','0'),
ROW('3','1'),
ROW('32','25')) as y) as x ON
x.column_0 = `xt_products`.products_mode
AND x.column_1 = `xt_products`.products_quantity
SET `products_quantity` = x.column_1 WHERE `products_model`= x.column_2
简短说明:
查询:
SELECT *
FROM (VALUES ROW('2','0'),
ROW('3','1'),
ROW('32','25')) y
返回:
column_0 | 第_1栏 |
---|---|
2 | 0 |
3 | 1 |
32 | 25 |
xt_products
更多信息: