2012-05-03 45 views
1

我有一個小問題,我只是不明白,什麼問題,我如何解決它,我有一個coldfusion變量,例如#account_code#,首先,這個代碼看起來像這樣:100.001.001(有一堆他們的cource),我有一些值爲這個變量,如sum(nettotal)和cfquery我這#account_code#分組,我想要的是設置這些代碼的列表,因此我定義列表,例如<cfset code_list='100.001.001,100.001.002'>和在查詢中:account_code in (#code_list#)我也試過這一個account_code in ('#code_list#'),但它給出了錯誤,它說'.001'附近的語法錯誤。據我瞭解,我需要以某種方式替換這些點,並且在沒有它們的情況下定義代碼ID。謝謝大家的幫助!我真的很喜歡它!定義分組項目的ID列表

回答

3

如果我明白你的問題是真的如何正確使用SQL IN子句。

IN子句的SQL取值的列表,如果這些值是數字,他們並不需要被引用,但你的代碼串,所以需要加引號

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

ColdFusion中的每個值要做到這一點正確的方法是使用< cfqueryparam>與列表=真

<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注入攻擊ttacks。

+0

是的:)正好!它幫助))非常感謝你! –