8

クエリの結果をループしているので、表示される行数を制限する必要があります。属性cfoutputを使用しているため使用する必要がありますが、すべての行が表示されるわけではないため、使用できません。groupmaxrows

<cfbreak>内で使用しようとしまし<cfoutput>たが、エラーが発生します。

<cfoutput>どうすればループから抜け出すことができますか?

4

2 に答える 2

8

group byが結果から重複を削除するためだけにある場合は、クエリを使用してそれらを削減することをお勧めします。次に、cfloopを実行できます(個別に選択して、返される列リストを減らします)。

group byを使用して結果を「グループ化」している場合は、ループ内でカウンターを実行し、最初のループ内でcfifステートメントを実行して、後の結果を省略できます。

cfbreakが必要な場合は、前の行の値を照合することで、cfloopのgroupbyオプションを偽造できます。

<cfloop query="queryname">
  <cfif queryname.column[currentrow-1] neq queryname.column[currentrow]>
    #queryname.column#
  </cfif>
</cfloop>

ランダムな注意:グループ化されたcfoutputの任意/すべてのレベルでmaxrowsできます

<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>
于 2011-10-18T11:17:44.993 に答える