【问题标题】:define a list of id's for grouped item为分组项目定义一个 id 列表
【发布时间】:2026-02-07 19:05:01
【问题描述】:

我有一个小问题,我就是不明白,问题是什么,我该如何解决,我有一个coldfusion变量,例如#account_code#,首先,这段代码看起来像这样:@ 987654322@(当然有很多)我有这个变量的一些值,比如sum(nettotal)和我按#account_code#分组的cfquery,我只想设置这些代码的列表,因此我定义列表,例如<cfset code_list='100.001.001,100.001.002'> 和查询:account_code in (#code_list#) 我也试过这个account_code in ('#code_list#') 但它给出了错误,它说'.001'附近的语法不正确。据我了解,我需要以某种方式替换这些点,并在没有它们的情况下定义代码 id。谢谢大家的帮助!我真的很欣赏它!

【问题讨论】:

    标签: coldfusion cfquery cfoutput


    【解决方案1】:

    如果我理解你的问题是你如何正确使用 SQL IN 子句。

    SQL IN 子句接受一个值列表,如果这些值是数字,则不需要引用,但您的代码是字符串,因此每个值都需要引用

    select * from tbl
    where id in ('100.001.001','100.001.002')
    

    在 ColdFusion 中,正确的做法是使用 with list=true

    <cfset code_list='100.001.001,100.001.002'>
    <cfquery name="qSomething" ...>
    select * from tbl
    where id in (
      <cfqueryparam list="true" 
        value="#code_list#"
        cfsqltype="cf_sql_varchar" />
    )
    </cfquery>
    

    这会将您的列表转换为查询中的多个参数,如果您的 code_list 实际上是由表单或 url 变量传入的,则有助于保护您免受 SQL 注入攻击。

    【讨论】: