我很好奇,这是否是在cfscript函数中使用queryExecute()时使用like运算符的正确方法。
if( len(arguments?.lastName) ){
local.sqlWhere & = " AND t_lastname LIKE :lName";
local.sqlParams.lName = { value : arguments.lastName & '%', cfsqltype:'cf_sql_varchar'};
};
它只是像带有&'%'的字符串一样附加吗?
答案 0 :(得分:0)
我刚刚解决了您的问题。在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#%
我希望这会对您有所帮助。谢谢