定义分组项目的 ID 列表



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

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

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

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

在 ColdFusion 中,正确的方法是使用 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 注入攻击。

相关内容

  • 没有找到相关文章

最新更新