是否可以基于别名的结果运行MySQL查询?

时间:2019-02-22 05:23:07

标签: mysql

SELECT CASE 
  WHEN col1_alias='' THEN 'empty value'
  ELSE 'has value' 
  END AS result, 
  (/* a complicated mysql SELECT statement */) AS col_alias
FROM my_table;

上面的MySQL查询给我Unknown column 'col_alias' in 'field list'错误。

是否可以根据result的值来生成col列?

我不想第二次编写复杂的MySQL SELECT语句。

=============================编辑================ ================

对不起,我忘了提到我的实际情况比上面粘贴的查询还要复杂。

我的真实查询包含JOINGROUP BY。像这样:

SELECT 
  my_table.id AS id,
  CASE 
    WHEN col1_alias='' THEN 'empty value'
    ELSE 'has value' 
    END AS result, 
    (/* a complicated mysql SELECT statement */) AS col_alias,
    another_table.name AS name
  FROM my_table 
    LEFT JOIN another_table
  ON 
    `my_table`.`id` = `another_table`.`id`
  GROUP BY
  `another_table`.`name`;

在这种情况下是否可以避免Unknown column 'col_alias' in 'field list'

我认为我可能必须将部分查询结果写入临时表。然后编写第二个针对原始表和临时表的查询。

但是,我仍然希望只能使用一个查询来实现目标。

0 个答案:

没有答案