带分组输出和mySql Order By

时间:2019-01-14 02:50:01

标签: mysql coldfusion

出于演示目的,假设我有以下查询:

std::string

在显示侧,可以对LI进行排序,并将它们的相应位置存储在相应的表列中。

在输出中,我正在遍历数据,需要使用SELECT a_label, aID, b_label, bID, c_label, cID, d_label, dID, orderByA, orderByB, orderByC FROM table ORDER BY orderByA, orderByB, orderByC ,然后一个子组正在使用<cfoutput query="qryName" group="aID">,另一个子组正在使用<cfoutput group="bID">,依此类推。 / p>

我的问题是我无法弄清楚查询的外观,以便正确地对我的输出进行分组。我需要对我的SQL查询进行分组还是将其保留在cfm代码中?然后顺序如何呢?

我想问的是,您怎么知道何时分组属于查询与代码?

已使用某些CFM代码更新

<cfoutput group="cID">

用户可以将项目从一个部分拖到另一部分,但前提是这些部分是同一级别。例如,<cfoutput query="#aw#" group="cID"> <ul class="listItem pItem"> <cfoutput group="pID"> <li class="listItem pTitle" data-cid="#aw.cID#" data-pid="#aw.pID#" data-wid="#aw.wID#"> <i class="glyphicon glyphicon-chevron-right rotate wToggle"></i> <input type="checkbox" name="p" class=""> #aw.pLabel# <ul class="listItem wItem hide"> <cfoutput group="wID"> <li class="listItem wTitle" id="w_#aw.cID#_#aw.pID#_#aw.wid#_#aw.woaid#"> <i class="glyphicon glyphicon-chevron-right rotate dToggle font-blue-madison"></i> <input type="checkbox" name="w" class=""> #aw.wLabel# <ul class="listItem dItem hide"> <cfoutput> <li class="listItem dTitle" id="d_#aw.cID#_#aw.pID#_#aw.wID#_#aw.dID#_#aw.woaid#"> <input type="checkbox" name="d" class="child"> #aw.dID# </li> </cfoutput> </ul> </li> </cfoutput> </ul> </li> </cfoutput> </ul> </cfoutput> 只能移动到具有dItem的另一个容器中。同样,dItem只能移动到另一个wItem,依此类推。

我正在处理sql查询,并将更新此问题。我一次是从一个级别开始,而不是同时从整个查询开始(使大小如此)。

更新 我想我发现了问题,数据不好。一些项目在其各自的wItem中没有值,因此分组的项目在子组中的顺序不正确。新添加的项目的默认值为orderBy*,但我认为需要使用其他值。 NULL列是否有最佳做法的默认值?

UPDATE ii 我发现了这个问题Insert and set value with max()+1 problems,可以在添加新项目时实施。这样,它就会出现在列表的末尾。

1 个答案:

答案 0 :(得分:1)

知道了!我的<cfoutput...group=...需要与GROUP BY子句中相同的列(和顺序)进行匹配/分组。一旦使它们匹配,我的输出就会与我看到的数据库相匹配。

更新的SQL
SELECT a_label, aID, b_label, bID, c_label, cID, d_label, dID, orderByA, orderByB, orderByC FROM table ORDER BY cID, orderByA, orderByB, orderByC

orderByC 只是一个很好的衡量标准,最后一个<cfoutput>标签不需要分组。

更新了CFM(删除了不必要的代码以突出显示解决方案

<cfoutput query="#aw#" group="cID">
<ul class="listItem pItem">
    <cfoutput group="orderByA">
        <li class="listItem pTitle">
            <i class="glyphicon glyphicon-chevron-right"></i> #aw.pLabel#
            <ul class="listItem wItem hide">
                <cfoutput group="orderByB">
                    <li class="listItem wTitle">
                        <i class="glyphicon glyphicon-chevron-right"></i>#aw.wLabel#
                        <ul class="listItem dItem hide">
                            <cfoutput>
                               <li class="listItem dTitle"> 
                                    #aw.dID#
                                </li>
                            </cfoutput>
                        </ul>
                    </li>
                </cfoutput>
            </ul>
        </li>
    </cfoutput>
</ul>