如何使用不同的列名集构建结构?

How to build structure with different set of column names?

我的 cfquery 中有两组不同的列。一组列是为 values 保留的,第二组是为表单输入字段中的 title 保留的。我正在服务器端构建结构,我希望这两个位于单独的列中。这是示例:

<cfquery name="UInfo" datasource="Test">
    SELECT TOP 1
        u_fname,
        u_lname,
        zu_fname,
        zu_lname
    FROM Users WITH (NOLOCK)
    WHERE u_urid = '0012341'
</cfquery>

<cfloop query="UInfo">
    <cfset qryRecs = StructNew()>
    <cfloop array="#UInfo.getColumnNames()#" index="columnName">
        <cfset qryRecs[columnName]['value'] = UInfo[columnName][CurrentRow]>
        <cfset qryRecs[columnName]['title'] = (structKeyExists(UInfo, "z"&columnName)? UInfo[columnName][CurrentRow] : "")>
    </cfloop>
</cfloop>

我上面的代码会产生这种输出:

U_FNAME     
struct
title   First Time
value   Mark
U_FLAST     
struct
title   New Customer
value   Miller
ZU_FNAME    
struct
title   First Time
value   [empty string]
ZU_LNAME    
struct
title   New Customer
value   [empty string] 

正如您在上面看到的,我的代码也为 Z 列生成了结构。我不需要这些列的单独结构,它们应该只显示在 TITLE 中。我的输出应该是这样的:

U_FNAME     
struct
    title   First Time
    value   Mark
U_FLAST     
struct
    title   New Customer
    value   Miller

我不确定如何获得所需的输出。如果有人可以提供帮助,请告诉我。谢谢!

你有这个:

<cfset qryRecs = StructNew()>

在循环中。应该在这之前:

<cfloop query="UInfo">

看来您只需要在列名称循环内的 columnName 上使用 if 语句

<cfif left(columnName, 1) eq "u">