Я только что прошел через вашу проблему.В Coldfusion & Symbol всегда объединяются две строки.Таким образом, мы не могли использовать это.Здесь я написал пример кода для вас, пожалуйста, проверьте это.Я надеюсь, что это поможет в написании запроса на основе сценария.
local.MyQry = "SELECT * FROM Users WHERE 1=1 ";
Я использовал то же условие от вас.Не уверены в ваших условиях
if( len(arguments?.lastName) ){
local.MyQry &= " AND Email like :email"
}
Здесь объедините запрос с предыдущим, если условие истинно.И упомянуто: (двоеточие, которое мы собираемся использовать в качестве queryparam)
local.qry = new Query( datasource = 'your DB name' , sql = Local.MyQry);
if( len(arguments?.lastName) ){
local.qry.addParam( name="email", value="%#Arguments.email#%", cfsqltype="cf_sql_varchar");
}
return local.qry.execute();
Вы можете указать здесь символ %
в зависимости от вашего сценария.Пример %#Arguments.email#
.или %#Arguments.email#%
Надеюсь, это поможет вам больше.Спасибо