Coldfusion 将值列表存储在单个列中?如果是这样,帮自己一个忙:不要。数据库设计用于处理信息行,而不是列表。存储列表会导致数据完整性和性能问题。相反,使用表将选项存储在行中,这项任务可能会简单得多。为什么每次都在循环中运行相同的查询?你对这个问题的评论暗示这是不明智的。

Coldfusion 将值列表存储在单个列中?如果是这样,帮自己一个忙:不要。数据库设计用于处理信息行,而不是列表。存储列表会导致数据完整性和性能问题。相反,使用表将选项存储在行中,这项任务可能会简单得多。为什么每次都在循环中运行相同的查询?你对这个问题的评论暗示这是不明智的。,coldfusion,cfquery,cfloop,Coldfusion,Cfquery,Cfloop,将值列表存储在单个列中?如果是这样,帮自己一个忙:不要。数据库设计用于处理信息行,而不是列表。存储列表会导致数据完整性和性能问题。相反,使用表将选项存储在行中,这项任务可能会简单得多。为什么每次都在循环中运行相同的查询?你对这个问题的评论暗示这是不明智的。@DanBracuk如果我知道外部查询,我会加入他们,但我不知道。我以最直接的方式回答了他的问题。@DanBracuk这可能是也可能不是完全相同的问题,我假设他正在这个循环中的其他地方设置他们的key_id。@AdamCameron这太冒昧了。


将值列表存储在单个列中?如果是这样,帮自己一个忙:不要。数据库设计用于处理信息行,而不是列表。存储列表会导致数据完整性和性能问题。相反,使用表将选项存储在行中,这项任务可能会简单得多。为什么每次都在循环中运行相同的查询?你对这个问题的评论暗示这是不明智的。@DanBracuk如果我知道外部查询,我会加入他们,但我不知道。我以最直接的方式回答了他的问题。@DanBracuk这可能是也可能不是完全相同的问题,我假设他正在这个循环中的其他地方设置他们的key_id。@AdamCameron这太冒昧了。为什么你会认为他每次都在通过循环重置会话变量?为什么你每次都在循环中运行相同的查询?你对这个问题的评论暗示这是不明智的。@DanBracuk如果我知道外部查询,我会加入他们,但我不知道。我以最直接的方式回答了他的问题。@DanBracuk可能是也可能不是完全相同的查询,我假设他正在这个循环的其他地方设置他们的key\u id。@AdamCameron这太冒昧了。为什么你会假设他每次都在循环中重置会话变量?RE:
ListFindLocase(myquery.setup_选项,…)
另外,我要重申的是,在查询列上使用列表函数表明db表未规范化,这就是笨拙循环背后的原因。如果是这样,我强烈建议重新构造表。然后您可以使用联接,让数据库发挥其最佳功能。RE:
ListFindLocase(myquery.setup_选项,…)
另外,我要重申的是,在查询列上使用列表函数表明db表没有规范化,这就是笨拙循环背后的原因。如果是这样,我强烈建议重新构造表。然后你可以使用联接,让数据库发挥它最好的作用。如果
myquery.recordCount
为0。仍然需要循环,因为我们需要为每个记录的myquery.setup\u选项执行
listfindnocase
。如果
myquery.recordCount
为0,它将不起作用。并且仍然需要循环,因为我们需要为每个记录的myquery.setup\u选项执行
listfindnocase
<cfloop query="myquery">
    <cfif listfindnocase(myquery.setup_option,"required_information")>
        <cfquery name="someRecord" dbtype="query">
            select * from second_table
            where key_id = '#myquery.key_id#'
        </cfquery>
        <cfif someRecord.recordcount eq 0>

        <!--- Need something here to remove this row from returning in the query --->

        </cfif>
    </cfif>
</cfloop>
<cfloop query="myquery">
    <cfquery name="someRecord" dbtype="query">
        select * from second_table
        where key_id = '#session.key_id#'
    </cfquery>

    <cfif someRecord.recordcount neq 0>

      <!--- do what you would do when record count NOT equal to zero --->
    </cfif>
</cfloop>
<cfloop query="myquery">
    <cfif listfindnocase(myquery.setup_option,"required_information")>
        <cfquery name="someRecord" dbtype="query">
            select * from second_table
            where key_id = '#myquery.key_id#'
        </cfquery>
        <cfif someRecord.recordcount eq 0>
            <cfcontinue>
        </cfif>
        <!--- handle the rows you *do* want to process here --->
    </cfif>
</cfloop>
// pseudocode, for brevity
newQuery = queryNew(oldQuery.columnList)
loop (oldQuery)
    if the row is not wanted
        continue
    /if
    add a row to newQuery
    add the row data to newQuery
/loop
listOfRowsToExclude = someMechanismToArriveAtSaidList()
<cfquery name="newQuery" type="query">
    SELECT   *
    FROM     oldQuery
    WHERE    id NOT IN (listOfRowsToExclude)
    ORDER BY [same clause as for oldQuery]
</cfquery>
<cfset myqueryIDs = ValueList(myquery.key_id)>
<cfif listfindnocase(myquery.setup_option,"required_information")>
    <cfquery name="allRecords" dbtype="query">
        select * from second_table
        where key_id IN (#myqueryIDs#) <!--- Assuming numeric IDs --->
    </cfquery>
</cfif>