首页 > 解决方案 > 如何只输出一次查询值?

问题描述

我有返回四列的查询。其中一列可以对多条记录具有相同的值。我只想输出该值一次。以下是数据示例:

Rec ID  Name   Color  Year
45      Nick   Green  2018
34      Mike   Red    2018
37      Nick   Blue   2019
44      John   Pink   2019
23      Jimmy  Orange 2019

我使用此代码输出值:

<cfoutput>
  <cfloop query="myQuery">
     <cfif fiscal_year gt 1991>
        <tr>    
            <td colspan="4"><a href="new_page.cfm?year=#year#>View All</a></td>
        </tr>
     </cfif>
     <tr>
        <td>#rec_id#</td>
        <td>#name#</td>
        <td>#color#</td>
        <td>#year#</td>
     </tr>
   </cfloop>
</cfoutput>

我的输出如下所示:

View All
45      Nick   Green  2018
View All
34      Mike   Red    2018
View All
37      Nick   Blue   2019
View All
44      John   Pink   2019
View All
23      Jimmy  Orange 2019

相反,我希望我的输出也看起来像这样:

View All
45      Nick   Green  2018
34      Mike   Red    2018
View All
37      Nick   Blue   2019
44      John   Pink   2019
23      Jimmy  Orange 2019

实现这一目标的最简单方法是什么?

标签: coldfusioncfmlcfquerycfloop

解决方案


<cfoutput>标签有一个group属性,允许您按列对查询数据进行分组。您可以将分组数据嵌套在另一个<cfoutput>标签中,甚至可以按多列分组。它应该看起来像这样:

<cfoutput query="myQuery" group="year">
    <cfif fiscal_year gt 1991>
        <tr>    
            <td colspan="4"><a href="new_page.cfm?year=#year#">View All</a></td>
        </tr>
    </cfif>
    <cfoutput>
    <tr>
        <td>#rec_id#</td>
        <td>#name#</td>
        <td>#color#</td>
        <td>#year#</td>
    </tr>
    </cfoutput>
</cfoutput>

推荐阅读