有没有解决方法,所以我实际上可以执行类似的操作而不必重复整个表达式或强制执行UNION或临时表?

SELECT  (complex expression) AS variable1,
        (complex expression based on variable1) AS variable2

由于由于mysql的工作方式,未定义variable1且可用于第二项,因此上述概念永远无法工作。

我要么必须为variable2重复表达式,要么使用UNION或临时表并使用两次传递。

有一些我不知道的技巧可以更有效地完成此操作吗?

(请注意,我需要知道variable1和variable2的答案,因为它们随后将用于INSERT)

感谢您的任何想法!

最佳答案

将第一个计算插入派生表:

select variable1
     , complex_function(variable1, other_column) as variable2
     , yet_another column
  from (select complex_operation as variable1
             , other_column
             , yet_another_column
          from whatever) dt

关于mysql - 我可以将MySQL查询中的表达式重新用作另一个字段的变量吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1368084/

10-10 06:53