显示列等于特定数据的位置?

时间:2014-04-28 20:47:18

标签: coldfusion

我有一个列(cse_dept),它有整数,我只想显示它等于12或39的列。 有没有办法做到这一点?

  <cfif  (#GetCurrentUser.cse_dept# eq '12'39') >
    <h1>test</h1>
 </cfif>

它没有向我显示错误它只是不按照我希望的方式工作。

2 个答案:

答案 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可能是更好的方法。