使用选择结果并进行比较

时间:2013-04-03 19:18:50

标签: mysql select

我的问题:

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

我的回答,取自another post

在SELECT上设置变量direclty,如下所示:

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 ## ,因为实际代码实际上非常冗长。

谢谢

2 个答案:

答案 0 :(得分:2)

两种可能的解决方案:

  1. 使用子查询
  2. 使用变量
  3. 子查询解决方案

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

    '变量'溶液

    set @a = 1;
    select @a as a, @a>2 as b;
    

答案 1 :(得分:0)

使用子查法将起作用

SELECT a, (a>2) AS b
FROM (
  SELECT 1 AS a
) f