繁体   English   中英

在MySQL SELECT语句中,派生字段如何利用SELECT列表中另一个字段的值?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM