определить список идентификаторов для сгруппированного элемента

у меня есть маленький вопрос, я просто не могу понять, в чем проблема и как я могу ее решить, например, у меня есть переменная Coldfusion#account_code#Во-первых, этот код выглядит так:100.001.001 (есть куча их конечно), и у меня есть некоторые значения для этой переменной, какsum(nettotal) и запрос я сгруппирован по этому#account_code#все, что я хочу, это установить список этих кодов, таким образом, я определяю список, например<cfset code_list='100.001.001,100.001.002'> и в запросе:account_code in (#code_list#) я тоже попробовал этотaccount_code in ('#code_list#') но вместо этого он выдает ошибку, он говорит неправильный синтаксис около «.001». насколько я понимаю, мне нужно как-то заменить эти точки и определить коды без них. Спасибо всем за помощь! я действительно ценю это!

Ответы на вопрос(1)

Решение Вопроса

ваш вопрос действительно, как вы правильно используете предложение SQL IN.

Предложение SQL IN принимает список значений. Если эти значения являются числовыми, их не нужно заключать в кавычки, но ваши коды являются строками, поэтому каждое значение необходимо заключать в кавычки

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

В ColdFusion правильным способом для этого является использование & lt; cfqueryparam & gt; со списком = правда

<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-инъекций.

 Bato Dor03 мая 2012 г., 10:06
Да, точно! это помогло)) большое спасибо!

Ваш ответ на вопрос