1

我的问题:

如何让 MySQL 在选择先前选择的值时使用而不重复

我的回答,取自另一个帖子

像这样在 SELECT 上设置变量直接:

SELECT @q:= ##longQuery## AS a, (@q>2) AS b;

我有这个 MySQL:

SELECT ##longQuery## AS a, (a>2) AS b;

但我得到了:

ERROR 1054 (42S22): Unknown column 'a' in 'field list'

我不想重复##longQuery##,因为它在实际代码中实际上相当冗长。

谢谢

4

2 回答 2

2

两种可能的解决方案:

  1. 使用子查询
  2. 使用变量

子查询解决方案

select a, a>2 as b
from (select 1 as a) as q;

“可变”解决方案

set @a = 1;
select @a as a, @a>2 as b;
于 2013-04-03T19:23:34.723 回答
0

使用子查询将起作用

SELECT a, (a>2) AS b
FROM (
  SELECT 1 AS a
) f
于 2013-04-03T19:20:47.423 回答