我原来做的就是先用 select count(*) as c0 from tab 得到全部的记录数,然后 select count(*) as c1, fx1,fx2,fx3 from tab group by fx1,fx2,fx3在循环处理时,将后面的c1累计,跟c0一除就是比例。现在的问题是,有的记录c1很大,有的记录c1=1,这样进度表示就不是很匀称,进入c1=1的记录区就像死机一样。我想如果知道第二次的统计记录数c2,将每条记录一次递增,做出来的进度一定像美女的身材一样匀称的。
进度一定像美女的身材一样匀称的。 这个做不到,因为你根本没办法预测你的SQL语句会执行多久。 如果忽略SQL执行时间,只看程序处理记录的时间,则可以如你所说。1. select count(*) 取得总记录数。这个比较准确。 也可以估算 SELECT table_rows FROM information_schema.`TABLES` T where table_name='tableName';2. 不需要select count(*) as c1, fx1,fx2,fx3 from tab group by fx1,fx2,fx3, 直接select fx1,fx2,fx3 from tab where .. 然后直接用C API mysql_num_rows() 得到行数
SELECT COUNT(*) FROM
不行吗?
select count(*) from tt where 你的条件,取值就OK了。
DELPHI中就是这样的。
然后直接用C API mysql_num_rows() 得到行数