如何打破Cfoutput

Yis*_*oel 9 coldfusion cfoutput

我循环查询结果,我需要限制显示的行数.我需要使用,cfoutput因为我正在使用该group属性,我不能使用它,maxrows因为不会显示所有行.

我尝试在<cfbreak>里面使用<cfoutput>,但是会抛出一个错误.

我怎么能摆脱<cfoutput>循环?

小智 8

如果您的分组仅用于删除结果中的重复项,我建议使用您的查询将其删除然后您可以cfloop(选择distinct并减少返回的列列表).

如果您使用组来"分组"结果您可以在循环中运行计数器,并在第一个循环内运行cfif语句以省略以后的结果.

如果您需要cfbreak,可以通过匹配上一行的值来伪造cfloop中的group by group

<cfloop query="queryname">
  <cfif queryname.column[currentrow-1] neq queryname.column[currentrow]>
    #queryname.column#
  </cfif>
</cfloop>
Run Code Online (Sandbox Code Playgroud)

随机说明:您可以在分组cfoutput的任何/所有级别上最大化

<cfset tmp = querynew('id,dd')>
<cfloop from="1" to="20" index="i">
  <cfset queryaddrow(tmp,1)>
  <cfset querysetcell(tmp,'id',rand(),i)>
  <cfset querysetcell(tmp,'dd',(i mod 4),i)>
</cfloop>
<cfquery dbtype="query" name="tmp">select * from tmp order by dd</cfquery>

<cfoutput query="tmp" group="dd" maxrows="2">#dd#<br
  <ul>
    <cfoutput maxrows="2" group="id"><li>#id#</li></cfoutput>
  </ul>
</cfoutput>
Run Code Online (Sandbox Code Playgroud)