如何对命名子查询执行字符串操作?

时间:2016-11-03 16:00:17

标签: mysql

以下查询返回非特定错误。

SELECT 
    mt.id
    ,mt.name
    ,(SELECT 
        fname
      FROM 
        othertable 
      WHERE 
        name = mt.name 
     ) AS first_name
     ,LOWER(first_name)
FROM 
mytable mt  

如何对此命名列执行字符串操作?

1 个答案:

答案 0 :(得分:1)

您不能在另一列中使用子选择的结果。如果要将其设置为小写,请在子选择中执行此操作。如果你需要两者(小写和普通),可以在两个不同的子选择中做这个(很难说 - 不会建议)或者在代码中这样做。

或者尝试将代码重写为连接。

SELECT 
    mt.id
    ,mt.name
    ,ot.fname
    ,LOWER(ot.fname) as lower_fname
FROM mytable mt  
JOIN othertable ot ON ot.name = mt.name