クエリの結果をループしているので、表示される行数を制限する必要があります。属性cfoutput
を使用しているため使用する必要がありますが、すべての行が表示されるわけではないため、使用できません。group
maxrows
<cfbreak>
内で使用しようとしまし<cfoutput>
たが、エラーが発生します。
<cfoutput>
どうすればループから抜け出すことができますか?
クエリの結果をループしているので、表示される行数を制限する必要があります。属性cfoutput
を使用しているため使用する必要がありますが、すべての行が表示されるわけではないため、使用できません。group
maxrows
<cfbreak>
内で使用しようとしまし<cfoutput>
たが、エラーが発生します。
<cfoutput>
どうすればループから抜け出すことができますか?
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>