MySQL:选择字符串的Concat和产生的Concat的长度

时间:2015-11-15 19:01:01

标签: mysql sql

在我的创建视图中,我想:

SELECT CONCAT( t.str1, t.str2 ) AS Title, CHAR_LENGTH( Title ) AS Length

但这会产生错误:

  

“字段列表”中的未知列“标题”。

在没有Concat相同字符串两次的情况下,这样做的正确方法是什么?

1 个答案:

答案 0 :(得分:0)

您无法引用您在SELECT中创建的别名,而是使用表达式:

SELECT CONCAT( t.str1, t.str2 ) AS Title,
       CHAR_LENGTH(CONCAT( t.str1, t.str2 )  ) AS Length
FROM table_name t

如果需要,您可以使用子查询:

SELECT sub.Title, CHAR_LENGTH( sub.Title ) AS Length
FROM (
   SELECT CONCAT( t.str1, t.str2 ) AS Title
   FROM table_name t
) AS sub;

<强> All-at-once operation

  

&#34; All-at-Once Operations&#34;意味着所有表达式都相同   逻辑查询过程阶段在逻辑上同时进行评估。

  

我们不能在SELECT子句中的下一列表达式中使用别名。   在查询中,我们创建了一个更正的名字,我们想在其中使用它   下一列产生全名,但是All-at-Once操作   概念告诉我们你不能这样做,因为所有表达式都在   评估相同的逻辑查询过程阶段(这里是SELECT)   在逻辑上同时。