use*_*269 30 mysql alias subquery
我正在尝试做这样的事情.但是我得到一个未知的列错误:
SELECT SUM(field1 + field2) AS col1, col1 + field3 AS col3 from core
Run Code Online (Sandbox Code Playgroud)
基本上,我想只使用别名,这样我就不需要执行先前执行的操作了.这可能在mysql中吗?
Rav*_*ekh 35
select @code:= SUM(field1 + field2), @code+1 from abc;
但是,请注意以下内容(来自MySQL 5.6文档):
作为一般规则,除了在SET语句中,您不应该为用户变量赋值并在同一语句中读取值.例如,要增加变量,这没关系:
Run Code Online (Sandbox Code Playgroud)SET @a = @a + 1;
对于其他语句,例如SELECT,您可能会得到您期望的结果,但这不能保证.在下面的语句中,您可能会认为MySQL将首先评估@a,然后再进行一次分配:
Run Code Online (Sandbox Code Playgroud)SELECT @a, @a:=@a+1, ...;
但是,涉及用户变量的表达式的评估顺序是未定义的.
因此,使用风险自负.
And*_*mar 20
考虑使用子查询,例如:
SELECT col1
, col1 + field3 AS col3
FROM (
SELECT field1 + field2 as col1
, field3
from core
) as SubQueryAlias
Run Code Online (Sandbox Code Playgroud)
小智 13
你可以select
别名:
SELECT SUM(field1 + field2) AS col1, (select col1) + field3 AS col3 from core
Run Code Online (Sandbox Code Playgroud)
这有效.
小智 5
select @code:= SUM(field1 + field2), (@code*1) from abc;
Run Code Online (Sandbox Code Playgroud)
@code*1 转换为数字表达式,您可以在任何地方使用,例如
select @code:= SUM(field1 + field2), (@code*1)+field3 from abc;
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
36567 次 |
最近记录: |