2013-03-11 73 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