gpt4 book ai didi

coldfusion - 如何转义使用 ValueList 生成的 cfparam VARCHAR 列表中的逗号?

转载 作者:行者123 更新时间:2023-12-04 00:44:06 26 4
gpt4 key购买 nike

假设有一个 SQL 表 Fruit

id | name
--- ------
1 | 'apples'
2 | 'pears'
3 | 'kiwi'
4 | 'bananas, peaches and plumbs'

给出以下查询

<cfquery name="qAllFruit" datasource="#DSN#">
SELECT name FROM Fruit
</cfquery>
<cfquery name="qLeftoverFruit" datasource="#DSN#">
SELECT name FROM Fruit
WHERE name NOT IN (<cfqueryparam CF_SQL_TYPE="CF_SQL_VARCHAR"
value="#ValueList(qAllFruit.name)#"
list="yes" />)
</cfquery>

然后 qLeftoverFruit 将错误地返回 1 行:bananas, peaches and plumbs 因为扩展的 cfqueryparam 列表被错误地解释:

WHERE name NOT IN ('apples','pears','kiwi','bananas','peaches and plumbs')

有没有办法在仍然使用 cfqueryparam 标记和 ValueList 的情况下更正此问题?

更新 以下是您可以用来重现此问题的要点:http://gist.github.com/a642878c96b82b21b52c

最佳答案

@Daniel Mendel,我认为问题出在 ColdFusion 使用的默认分隔符上。您的数据中包含“,”,而 CF 中的默认分隔符是“,”。

像这样更改您的查询 -

WHERE name NOT IN ( <cfqueryparam CFSQLType="CF_SQL_VARCHAR" 
value="#ValueList(qTags.tag,';' )#"
list="Yes" separator=";" />
)

只需将 valueList 中的分隔符更改为 ';'从默认的 ',' 并将 QueryParam 分隔符设置为 ';'。

关于coldfusion - 如何转义使用 ValueList 生成的 cfparam VARCHAR 列表中的逗号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14449384/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com