我是ColdFusion的新手,正在尝试查询某些内容并在cfscript中使用它。我不能在这里使用实际的代码,但是这是一个常规的SQL查询,希望对您有所帮助。这是一个旧脚本,我正在尝试将其从cfquery标记更改为cfscript标记。
<cfscript>
sqlCF = queryExecute("SELECT primarykey FROM names, personnel
WHERE name.primaykey = personnel.primarykey
AND ( upper(personnel.ID LIKE upper(':id%') OR
upper(personnel.userID) LIKE upper(':id%')
)
, {id={value = "xyz123", cfsqltype="cf_sql_varchar}}
, {datasource=person"});
writeDump(sqlCF);
</cfscript>
当我运行它时,它显示为0个查询,但是当我对其进行硬编码并将查询的:id%
部分更改为xyz123%
时,它将起作用。我只是不知道应该如何传递带有通配符的LIKE('XXXX%'),或者看起来是否正确。有什么想法吗?
答案 0 :(得分:6)
您要将通配符添加到参数中的字符串,而不是查询字符串中。还要注意,当我使用参数时,我没有将参数用引号引起来。
<cfscript>
sqlCF = queryExecute("
select primarykey
from names, personnel
where name.primaykey = personnel.primarykey
and (
upper(personnel.ID) LIKE upper(:id)
or
upper(personnel.userID) LIKE upper(:id)
)
",{
id={
value = "xyz123%",
cfsqltype="cf_sql_varchar"
}
},
{datasource="person"});
</cfscript>