Mysql 用于数据库查询的Coldfusion数组
我试图用下面的cfml(sql)语句查询数据库,但我希望能够从数组中获取每个stat_实例的结果,最后一行包含循环,我认为应该根据数组中的每个值生成一个查询Mysql 用于数据库查询的Coldfusion数组,mysql,coldfusion,Mysql,Coldfusion,我试图用下面的cfml(sql)语句查询数据库,但我希望能够从数组中获取每个stat_实例的结果,最后一行包含循环,我认为应该根据数组中的每个值生成一个查询 select <cfif monthCrossover> statsMinEnd2 + </cfif> stats_min as time_stamp, <cfif structKeyExists(avgThis, arguments.key)>
select
<cfif monthCrossover>
statsMinEnd2 +
</cfif>
stats_min as time_stamp,
<cfif structKeyExists(avgThis, arguments.key)>
avg
<cfelse>
sum
</cfif>
(stats_value) as stats_value
from stats_kv_table_201207
where
<cfif dayStart == dayEnd>
stats_day = <cfqueryparam value="#dayStart#">
<cfelse>
stats_day >= <cfqueryparam value="#dayStart#">
and stats_day <= <cfqueryparam value="#dayEnd#">
</cfif>
and stats_min >= <cfqueryparam value="#statsMinStart1#"> and stats_min <= <cfqueryparam value="#statsMinEnd1#">
and stats_component = <cfqueryparam value="#arguments.component#">
<cfset instanceList = ListToArray(arguments.instance)>
<cfif ArrayLen(instanceList) EQ 1>
and stats_instance = <cfqueryparam value="#arguments.instance#">
</cfif>
<cfif ArrayLen(instanceList) GT 1>
and stats_instance IN (<cfqueryparam value="#arguments.instance#" list="yes"/>)
</cfif>
<cfif ArrayLen(instanceList) GT 1 and ArrayContains(instanceList, "multi")>
<cfloop index = "i" from="1" to="#arrayLen(instanceList)#" array =#instanceList#>
<cfset stats_instance = <cfqueryparam value= #instanceList[i]#>
</cfloop>
</cfif>
选择
statsMinEnd2+
作为时间戳的统计数据\u min,
平均值
总和
(统计值)作为统计值
来自统计数据表201207
哪里
统计日=
统计数据日>=
这样做有什么不对吗
<cfset myArr = ArrayNew(1) />
<cfloop array="myOtherArr" index="index">
<cfquery name="myQuery" datasource="myDataSource">...</cfquery>
<cfset ArrayAppend(myArr, myQuery.value) />
</cfloop>
...
这样做有什么不对吗
<cfset myArr = ArrayNew(1) />
<cfloop array="myOtherArr" index="index">
<cfquery name="myQuery" datasource="myDataSource">...</cfquery>
<cfset ArrayAppend(myArr, myQuery.value) />
</cfloop>
...
如果我正确理解了您的问题,您可能需要在查询中使用GROUP BY子句按统计实例对sum/avg值进行分组。大概是这样的:
SELECT stats_instance, ...
FROM ...
WHERE
...
<cfif len(trim(arguments.instance))>
AND stats_instance IN (<cfqueryparam value="#arguments.instance#" list="yes"/>)
</cfif>
GROUP BY stats_instance
ORDER BY stats_instance
选择stats\u实例。。。
从…起
哪里
...
和()
按stats\u实例分组
按stats\u实例排序
注意:根据您的数据库引擎,语法可能会有所不同。如果我正确理解了您的问题,您可能需要在查询中使用GROUP BY子句按统计实例对sum/avg值进行分组。大概是这样的:
SELECT stats_instance, ...
FROM ...
WHERE
...
<cfif len(trim(arguments.instance))>
AND stats_instance IN (<cfqueryparam value="#arguments.instance#" list="yes"/>)
</cfif>
GROUP BY stats_instance
ORDER BY stats_instance
选择stats\u实例。。。
从…起
哪里
...
和()
按stats\u实例分组
按stats\u实例排序
注意:根据您的数据库引擎,语法可能会有所不同。感谢您的建议,我试图实现的是为每个stat_实例生成数据,假设我只有一个实例,它在WHERE语句中使用该实例并仅生成一个,但当我有一个实例数组时,我希望sql语句为它在ArrayShanks循环中看到的每个stat_实例生成数据。我想实现的是为每个stat_实例生成数据,假设我只有一个实例,它在WHERE语句中使用该实例并只生成一个,但是当我有一个实例数组时,我希望sql语句为它在ArrayShanks循环中看到的每个stat_实例生成数据。我想实现的是为每个stat_实例生成数据,假设我只有一个实例,它在WHERE语句中使用该实例并只生成一个,但是当我有一个实例数组时,我希望sql语句为它在ArrayShanks循环中看到的每个stat_实例生成数据。我想实现的是为每个stat_实例生成数据,假设我只有一个实例,它在WHERE语句中使用该实例并只生成一个,但是当我有一个实例数组时,我希望sql语句为它在数组循环中看到的每个stat_实例生成数据