cfscript和queryExecute()使用like而不是equals

时间:2019-04-24 12:20:46

标签: coldfusion cfml

我很好奇,这是否是在cfscript函数中使用queryExecute()时使用like运算符的正确方法。

if( len(arguments?.lastName) ){
    local.sqlWhere & = " AND t_lastname LIKE :lName";
    local.sqlParams.lName = { value : arguments.lastName & '%', cfsqltype:'cf_sql_varchar'};
};

它只是像带有&'%'的字符串一样附加吗?

1 个答案:

答案 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#%

我希望这会对您有所帮助。谢谢