我有两列分别是measurement_unit和measurement_size。measurement_unit列中的值是ml,gm,litre。并且measurement_size具有值200,1300,2000 i已将所有的值转换为诸如现在我想将measurement_size的值更改为.2,1.3,2或measurement_unit,这是我的case表达式。但是它不起作用..我该怎么办?此外,它不是更新查询为我的报告这样做。它不会更改数据库中的任何值。 CASE WHEN MUC.name='ml' THEN (MUC.name)='Liter' WHEN MUC.name='gm' THEN (MUC.name)='Kg' END AS Measurement, (adsbygoogle = window.adsbygoogle || []).push({}); 最佳答案 一种可能性是在CASE WHEN语句内使用UPDATE:UPDATE MUCSET MUC.name = CASE WHEN MUC.name = 'ml' THEN 'Liter'; WHEN MUC.name = 'gm' THEN 'Kg';ELSE MUC.nameEND对于此解决方案,我唯一不满意的是它仍将使用当前值来更新不匹配的行。如果您确实只想更新要转换的行,则可以尝试使用包装在事务中的两个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 - 大小写表达式以更改列的值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37154335/ (adsbygoogle = window.adsbygoogle || []).push({});
10-09 17:46