gpt4 book ai didi

mysql - MySQL UPDATE 查询中的 "intermediate"变量

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

找不到任何适合我情况的东西;可能是以错误的方式处理这个问题......

如何为 UPDATE 查询的每一行创建“中间”变量? (在示例中,@ Correction var)

如果没有别的原因,这主要是为了使查询更加清晰。

UPDATE `table_with_errors`
JOIN `corrections_table`
ON `table_with_errors`.`corrections_table_id` = `corrections_table`.`id`
SET
@correction = IF(`table_with_errors`.`correction_type` = 1, `corrections_table`.`corr1`,
IF(`table_with_errors`.`correction_type` = 2, `corrections_table`.`corr2`, `corrections_table`.`corr3`)),
`table_with_errors`.`valueA` = `table_with_errors`.`valueA` + @correction,
`table_with_errors`.`valueB` = `table_with_errors`.`valueB` + @correction,
`table_with_errors`.`valueC` = `table_with_errors`.`valueC` + @correction;

已经很丑了。我讨厌必须粘贴该修正公式来代替每次出现的情况......(真正的更正查询与用户函数的嵌套更多一些,因此我希望为了清晰起见缓存更正)

最佳答案

找不到任何方法来访问 SQL 的这种“机制”。通过添加额外的列来首先保存校正值,将其应用于存储的数据,然后删除该列,解决了具体问题。

关于mysql - MySQL UPDATE 查询中的 "intermediate"变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44863250/

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