gpt4 book ai didi

mysql - case 表达式来更改列的值

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

我有两列:measurement_unitmeasurement_sizemeasurement_unit 列中的值为 ml,gm,litre >.并且measurement_size的值为200,1300,2000我已将measurement_size的所有值转换为整数,例如.2 ,1.3,2 现在我想将 measurement_unit 的值更改为 literkg,这是我的案例表达式。但是它不起作用..我应该做什么?此外,它不是更新查询,我正在为我的报告执行此操作..它不会更改数据库中的任何值..

 CASE WHEN MUC.name='ml' THEN (MUC.name)='Liter' 
WHEN MUC.name='gm' THEN (MUC.name)='Kg'
END AS Measurement,

最佳答案

一种可能是在 UPDATE 语句中使用 CASE WHEN:

UPDATE MUC
SET MUC.name = CASE
WHEN MUC.name = 'ml' THEN 'Liter';
WHEN MUC.name = 'gm' THEN 'Kg';
ELSE MUC.name
END

我对这个解决方案唯一不喜欢的是它仍然会使用当前值更新不匹配的行。如果您确实只想更新要转换的行,那么您可以尝试使用两个包含在事务中的 UPDATE 语句:

START TRANSACTION
UPDATE MUC
SET MUC.name = 'Liter' WHERE MUC.name = 'ml'
UPDATE MUC
SET MUC.name = 'Kg' WHERE MUC.name = 'gm'
COMMIT

如果您想确保没有人看到您的设备处于中间状态,则可能需要进行该事务。

关于mysql - case 表达式来更改列的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37154335/

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