我有一个列(cse_dept),它有整数,我只想显示它等于12或39的列。 有没有办法做到这一点?
<cfif (#GetCurrentUser.cse_dept# eq '12'39') >
<h1>test</h1>
</cfif>
它没有向我显示错误它只是不按照我希望的方式工作。
答案 0 :(得分:5)
您可以使用listFind
。如果GetCurrentUser.cse_dept
的值为12或39 listFind
将返回大于0的数字
<cfif listFind('12,39', GetCurrentUser.cse_dept)>
<h1>test</h1>
</cfif>
listFind
区分大小写,以防您搜索数字以外的内容。如果您需要不区分大小写的搜索,可以使用listFindNoCase
或者,您可以单独检查每个值
<cfif GetCurrentUser.cse_dept EQ 12 OR GetCurrentUser.cse_dept EQ 39>
<h1>test</h1>
</cfif>
如果您想检查查询中的任何结果GetCurrentUser.cse_dept
是12还是39,那么
<cfif listFind(valueList(getCurrentUser), 12) OR listFind(valueList(getCurrentUser), 39)>
<h1>test</h1>
</cfif>
答案 1 :(得分:0)
有几种方法可以做到这一点:
方法1 - 查询查询
<cfquery name="q1" dbtype="query">
select count(*) records
from GetCurrentUser
where cse_dept in (12,39)
</cfquery>
<cfif q1.records gt 0>
do something
</cfif>
方法2 - 列出函数
<cfif ListFind(ValueList(GetCurrentUser.cse_dept), 12)
+
ListFind(ValueList(GetCurrentUser.cse_dept), 39) gt 0>
do something
</cfif>
方法3 - 数组函数
<cfif ArrayFind(GetCurrentUser['cse_dept'], 12)
+
ArrayFind(GetCurrentUser['cse_dept'], 39) gt 0>
do something
</cfif>
方法2与马特的第二个结果非常相似。一个区别是使用ValueList函数。第二个是,我没有使用&#34;或&#34;,而是将功能结果一起添加。结果是一样的。
方法3可能是最快的。但是,根据12号和39号的来源,方法1可能是更好的方法。