2011-06-24 70 views
2

我有一個ColdFusion記錄如下所示:ColdFusion查詢對象操縱

id name 
1  dog 
1  dog 
2  cat 
2  cat 
5  lion 

的總記錄是5,但是我想在不改變我的SQL檢索總唯一的ID(在這種情況下3)使用ColdFusion。

回答

6

如果我正確理解你的問題,你想計算唯一的ID?使用查詢的查詢:

<cfquery datasource="quackit" name="GetAll"> 
select * from myTable 
</cfquery> 

<cfquery dbtype="query" name="GetUnique"> 
select distinct(id) from GetAll 
</cfquery> 

#GetUnique.recordCount# 
+0

我從「Get .... from GetAll」中得到無效的對象名'GetAll' – Yannick

+0

我忘了添加dbtype =「query」 – Yannick

0

的另一種方法是,以獲得ID添加到列表中,重複數據刪除它,再算上結果。

<cfset idList = valueList(myquery.id) /> 
<cfset dedupedIDlist = ListDeleteDuplicates(idList) /> 
<cfset uniqueIDcount = listLen(dedupedIDlist) /> 

ListDeleteDuplicates()

<cfscript> 
/** 
* Case-sensitive function for removing duplicate entries in a list. 
* Based on dedupe by Raymond Camden 
* 
* @param list  The list to be modified. (Required) 
* @return Returns a list. 
* @author Jeff Howden ([email protected]) 
* @version 1, July 2, 2008 
*/ 
function ListDeleteDuplicates(list) { 
    var i = 1; 
    var delimiter = ','; 
    var returnValue = ''; 
    if(ArrayLen(arguments) GTE 2) 
    delimiter = arguments[2]; 
    list = ListToArray(list, delimiter); 
    for(i = 1; i LTE ArrayLen(list); i = i + 1) 
    if(NOT ListFind(returnValue, list[i], delimiter)) 
     returnValue = ListAppend(returnValue, list[i], delimiter); 
    return returnValue; 
} 
</cfscript> 

ListRemoveDuplicates()另一種方式做同樣的事情,使用結構的功能,如果你添加一鍵已經存在它只是被覆蓋的結構體。