在 MySQL 中使用表别名作为列


Use Table Alias as Column in MySQL

我有一个这样的查询:

select a,b, (a+b) as c, (a-b) as d, (a+b)*-1 as e, (a+b)/(a-b) as f from test;

有没有办法让我将以前定义的别名用作列,这样它就会像:

(a+b)/(a-b) as f from testc/d as f from test

或任何其他解决方案,我不会在此查询中重新编码任何表达式。

select *
from (
 select a,b, (a+b) as c, (a-b) as d, (a+b)*-1 as e, (a+b)/(a-b) as f 
 from test
) s

使用用户定义的变量。

SELECT a,b, 
    @c := (a+b) as c, 
    @d := (a-b) as d, 
    @c*-1 as e, 
    @c/@d as f
FROM test;

它们可以有很多种方式,但据我所知,你可以通过使用这样的子查询来做到这一点。当您将主查询作为子查询并根据您的要求使用它时,您将获得所有别名作为列。

查看本教程以获取更多内容:http://www.mysqltutorial.org/mysql-subquery/

select a,b,c,d,e,f form 
 (select a,b, (a+b) as c, (a-b) as d, (a+b)*-1 as e, (a+b)/(a-b) as f from test)
x;