只是好奇,给出了这样的查询和输出:
<cfoutput query="someItems" group="someColumnName">
... doing some stuff here ..
<cfoutput> doing stuff with some sub items </cfoutput>
</cfoutput>如果有一种方法可以改变“内部”cfoutput中元素的顺序?查询可以同时分组和排序吗?
发布于 2013-11-06 16:42:38
您需要在查询中添加ORDER BY子句才能工作,但可以嵌套使用group属性的cfoutput标记。
<cfoutput query="someItems" group="someColumnName">
... doing some stuff here ..
<cfoutput group="someOtherColumnName> doing stuff with some sub items </cfoutput>
</cfoutput>这假设在查询中有如下内容:
ORDER BY someColumnName, someOtherColumnName请记住,group的cfquery属性与GROUP BY语句中的GROUP BY子句不相同。您可以对查询中的group子句中的任何列使用cfoutput的ORDER BY属性。
发布于 2013-11-06 16:35:52
一种解决方案是重组代码,以使用查询方法。下面是一个很好的例子:
http://www.bennadel.com/blog/2211-ColdFusion-Query-Of-Queries-vs-The-Group-Attribute-In-CFOutput.htm
基本上,您可以在一个主查询中提取您所关心的所有数据(可能是您已经编写的查询)。您可以添加第二个查询(针对您的第一个查询,而不是针对数据库),该查询根据需要在顶层循环中对数据进行分组和聚合。在第二个查询驱动的循环中,您将组中的行数据用作另一个查询(针对第一个查询,而不是针对数据库)的参数,以提取与当前行排序有关的所有数据。
一开始,查询查询的想法似乎很奇怪,但我在性能上没有问题,它给了您很大的灵活性,可以在内部循环中执行您想要的操作。祝好运!
https://stackoverflow.com/questions/19798883
复制相似问题