【问题标题】:can you pass a mysql column alias to a user defined function您可以将 mysql 列别名传递给用户定义的函数吗
【发布时间】:2014-10-19 01:43:37
【问题描述】:

我有一个 select 语句,它根据不同的标准显示多个计数

我想将计数传递给用户定义函数 (UDF) 以进行一些计算

例如

SELECT 
player, 
COUNT(IF(action=1,1,NULL)) AS tot_bullseye, 
COUNT(IF(action=2,1,NULL)) AS tot_twentys

UDF(tot_bullseye, tot_twentys)

【问题讨论】:

    标签: mysql parameter-passing aliases


    【解决方案1】:

    不,在同一查询的SELECTWHERE 子句中永远无法访问列别名。您必须重复表达式,或使用子查询:

    SELECT player, tot_bullseye, tot_twentys, UDF(tot_bullseye, tot_twentys)
    FROM (SELECT player,
                 COUNT(IF(action=1,1,NULL)) AS tot_bullseye,
                 COUNT(IF(action=2,1,NULL)) AS tot_twentys
          ...) AS subq
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-01-20
      • 2015-08-27
      • 1970-01-01
      • 2017-09-17
      • 2012-06-27
      • 1970-01-01
      • 1970-01-01
      • 2013-03-08
      相关资源
      最近更新 更多