首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL等效于MySQL的交叉应用

问MySQL等效于MySQL的交叉应用
EN

Stack Overflow用户
提问于 2015-10-01 18:05:23
回答 2查看 7.2K关注 0票数 3

如果您已经习惯了MySQL的交叉应用,那么您可能想知道如何在MySQL中完成同样的任务。我找到了相反的问题,并认为这个直接的问题可能会帮助任何人搜索如何将此功能从MySQL迁移到MySQL。

在本例中,交叉应用允许您修改字段并在同一个查询中使用结果。问题是如何在MySQL中做到这一点。

代码语言:javascript
复制
SELECT v.Var1, POWER(v.Var1, 2) AS Var2Squared
    FROM [Table] t
    CROSS APPLY (SELECT t.Column1 + t.Column2 AS Var1) v
EN

回答 2

Stack Overflow用户

发布于 2015-10-01 18:17:09

您对自己问题的回答表明,CROSS APPLY所做的工作非常有限。对于这个特定的问题,您可以使用子查询:

代码语言:javascript
复制
select t.*, power(var1, 2)
from (select (column1 + column2) as var1
      from aTable
     ) t;

这更昂贵,因为它会导致子查询物化的代价。另一种方法是重复这个短语:

代码语言:javascript
复制
select (column1 + column2) as var1, power((column1 + column2), 2)
from aTable;

这是我在MySQL中想出的唯一安全的方法来做你想做的事情。

票数 1
EN

Stack Overflow用户

发布于 2015-10-01 18:05:23

同样的事情(更新:虽然不理想)可以通过用户定义的变量("at符号/@“)在MySQL中完成:

代码语言:javascript
复制
SELECT @var1 := column1+column2 AS var1,
  POWER(@var1, 2) AS var2squared
  FROM aTable
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32894065

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档