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语句。
=============================编辑================ ================
对不起,我忘了提到我的实际情况比上面粘贴的查询还要复杂。
我的真实查询包含JOIN
和GROUP 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'
?
我认为我可能必须将部分查询结果写入临时表。然后编写第二个针对原始表和临时表的查询。
但是,我仍然希望只能使用一个查询来实现目标。