我想获得列对字符串的记录总数。
例如,seller
列=' ONA'。我想知道有多少记录等于" ONA"还有多少不是。
这就是我所拥有的:
<cfset stringONA= "ONA">
<CFSET onaseller= 0>
<CFSET notseller=0>
<cfloop query="getunion_again">
<cfif #getunion_again.seller# eq stringONA>
<cfset onaseller = onaseller +1 >
<P>TEST</P>
<cfelse>
<cfset notseller = notseller +1>
</cfif>
</cfloop>
<cfdump var=#onaseller #>
<cfdump var=#notseller #>
我没有收到任何错误,只是没有得到任何数据。
答案 0 :(得分:5)
查询查询是否更容易获取符合条件的记录数而不进行循环?
<cfquery name="qryCount" dbtype="query">
SELECT COUNT(*) AS positive_count
FROM getunion_again
WHERE seller = <cfqueryparam cfsqltype="cf_sql_varchar" value="#stringONA#">
</cfquery>
<cfset onaseller = qryCount.positive_count>
<cfset notseller = getunion_again.recordcount - onaseller>
答案 1 :(得分:3)
可以使用listValueCountNoCase()
来计算列表中的匹配项,并且可以使用valueList()
将查询列提取为列表。不匹配的数量是行数减去匹配数量。
所以:
values = valueList(getunion_again.seller);
onaseller = listValueCountNoCase(values, stringONA);
notseller = getunion_again.recordCount - onaseller;