[英]In MySQL SELECT statement, how can a derived field utilise the value of another field in the SELECT list?
在MySQL SELECT语句中,派生字段如何利用SELECT列表中另一个字段的值?
例如,运行以下查询时:
SELECT
'tim' AS first_name
,first_name || ' example' AS full_name;
我希望结果如下:
first_name, full_name
tim , tim example
相反,我收到以下错误 :
Unknown column 'first_name' in 'field list'.
有没有办法可以引用另一列?
谢谢
Turgs
不,您必须重复它或使用派生表。
select *, concat(first_name, ' example') as full_name
from (
select
'tim' as first_name ) as t
您可以将查询包装为子查询:
SELECT
first_name
, first_name || ' example' AS full_name
FROM
( SELECT
'tim' AS first_name
, ...
FROM ...
...
) AS tmp
或复制代码:
SELECT
'tim' AS first_name
, 'tim' || ' example' AS full_name
来自http://dev.mysql.com/doc/refman/5.0/en/problems-with-alias.html
标准SQL不允许在WHERE子句中引用列别名。 强制执行此限制是因为在评估WHERE子句时,可能尚未确定列值。
您无法引用尚未确定其值的列。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.