4

我已使用Adob​​e的最新更新 12 更新了我的 Coldfusion 2018 服务器。一旦我更新了服务器,我就在我的 QoQ 中使用ORDER BY 为我的应用程序编写了一些 QoQ。每当我在 QoQ 中使用 order by 时,结果数据都会有一些重复的列。

For my simple sample query as example, 

<cfquery name="testRead" datasource="testmssql">
        SELECT * FROM loginDetails
    </cfquery>

    <cfdump var="#testRead#" label="Main Query">

    <cfquery name='readSub' dbtype="query">
      SELECT userID, Username FROM testRead 
      ORDER BY userid DESC
    </cfquery>

    <cfdump var="#readSub#" label="QoQ Result" abort="true">

**Output:** Refer my image please.

在此处输入图像描述

在这里您可以看到第二个 QoQ 转储有两个 userID 列。我不确定我们为什么在这里拥有它以及它来自哪里。? 如果我在 ORDER BY 列表中再添加一列,那么该列也会在结果查询中重复。例如,如果添加 ORDER BY userid DESC, userName 那么查询转储查询具有 userID,userid,userName,username。

注意:这在我的 update12 之前没有发生。主查询不会发生这种情况。

Any thoughts ? Please share. Thank you advance !.
4

1 回答 1

5

这是更新的一个已知问题,并且已向 Adob​​e 提交了一个错误。我建议您添加评论并为该错误投票。

Adobe 错误跟踪器 - CF-4212383

在包含 ORDER BY 子句的查询中重复具有相同名称的列。

该错误的描述:

问题描述:

应用 CF 2021 Update 2 后,在 QoQ 中使用 ORDER BY 子句时,ORDER BY 子句中的字段已区分大小写,如果它们与 SELECT 列表中字段的大小写不完全匹配,则重复列被添加到结果查询中,导致查询具有两个(或更多)具有相同名称的列。

此外,如果没有将字段添加到 SELECT 列表而使用 *,则 ORDER BY 子句中的字段必须大写,否则在结果查询中会再次出现具有相同名称(但大小写不同)的重复列。

这种显示停止行为已在 CF 2021 Update 2 中引入。CF2021 Update 1 的行为符合预期。(CF2016 也按预期运行)。

即使该错误提到 CF 2021 Update 2,它也会影响 CF 2018 Update 12。正如为 CF 2018 Update 12 提交的错误 CF-4212430所验证的,该错误已作为 CF 2021 错误的副本而关闭。

于 2021-10-01T15:13:31.417 回答