2013-03-11 29 views
0

傢伙COUNT(*):

假設我有一個基表,它記錄的元組。如果用戶希望得到滿足一定條件的COUNT(*),他們可以使用SQL查詢這樣的:

SELECT count(*) FROM table where cond1=$cond1 AND cond2 = $cond2 AND... 

問題1:如果條件保持不變,我們怎麼能得到實時算什麼?出於某種原因,我不能直接使用count(*)來完成任務。

問題2:如果出現新情況,如何擴大問題1的情況?

回答

0
  1. 雖然這是很難想象什麼可以阻止您使用實現你的目標(如果我正確地理解您的需求),並假設一些參數可能組合是有限的COUNT()一種可能的方式,可能是:

    • 創建,保持數多套不同的條件
    • 上重新填充基礎表(一個或多個)創建觸發器(一個或多個)的表/重新計算更新(S)計數值,插入,刪除操作
    • 閱讀從該表計數
  2. 更新您的觸發

+0

添加觸發器,我需要接觸數據庫管理,他說這是難以維持的。如何添加保持計數的表格?但我關心數據的一致性。 – MoreFreeze 2013-03-11 07:25:05

+0

如果你需要實時計數,那麼我相信你沒有選擇那麼。如果延遲不是問題,那麼您可以使用存儲過程來重新填充/重新計算計數值,並使用調度程序定期運行該SP。 – peterm 2013-03-11 07:29:57