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

问题描述 投票:2回答:1

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

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

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

coldfusion cfml
1个回答
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#%

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

© www.soinside.com 2019 - 2024. All rights reserved.