2009-12-30 69 views

回答

0

如果我正確理解你,你有兩個結構相同,但數據集不同的結果集(比如選擇不同的子句)。

如果這是正確的,我認爲更好(更高效)的方法是嘗試在數據庫級別解決此任務。也許使用臨時/累積表和/或存儲過程。

使用CF幾乎肯定會需要大量的循環,這對於大型數據集可能不合適。儘管我爲使用中間存儲的小數據集做了這樣的事情:將一個結果集轉換爲結構體,然後通過檢查結構鍵來遍歷第二個查詢。

5

如果您正在尋找簡單地決定兩個查詢是否正是相似的,那麼你可以這樣做:

if(serializeJSON(query1) eq serializeJSON(query2)) ... 

這兩個查詢轉換爲字符串和比較字符串。

如果你正在尋找更多的細微差別,我相信Sergii的方法(轉換爲結構,比較鍵)可能是正確的方法。您可以通過首先添加簡單的檢查來「防範」它...列列表是否匹配?記錄數是否相同?這樣,如果其中任何一項檢查失敗,您就知道這些查詢不可能是等效的,因此可以安全地返回false,從而避免完整比較的性能下降。

+0

優秀的提示,這個招數爲我工作,我與我的整個團隊分享! –