我有一个小问题,我只是不明白,是什么问题,如何解决这个问题呢,我有一个ColdFusion变量,例如#account_code#
首先,该代码如下所示: 100.001.001
(有一群人五言的)和我有一些值这个变量,像sum(nettotal)
和我通过这个分组的CFQUERY #account_code#
我要的是设置这些代码的列表,所以我定义列表,例如<cfset code_list='100.001.001,100.001.002'>
和在查询: account_code in (#code_list#)
我也尝试这一个account_code in ('#code_list#')
而是它给出了该错误,它说附近的“0.001' 不正确的语法。 据我了解我必须以某种方式取代这些点,并定义码ID的没有他们。 谢谢大家的帮助! 我真的appretiate吧!
Answer 1:
如果我理解你的问题真的是你如何正确使用SQL IN子句。
IN子句的SQL取值的列表,如果这些值是数字,他们并不需要被引用,但你的代码串,所以需要加引号的每个值
select * from tbl
where id in ('100.001.001','100.001.002')
在ColdFusion的做到这一点,正确的方法是使用<cfqueryparam>与列表= 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注入攻击。
文章来源: define a list of id's for grouped item