2011-06-29 46 views
1

我不确定我是否已经输入了正确的标题,将会很乐意让版主改变它。这里是我想: 可以说我有3列根据当前记录的总百分比选择行MySQL

Id | Name  | campaignid 
----------------------------- 
1. | John. |  1 
---------------------------- 
2 | Peter. |  2 
--------------------------- 
3. | Martin. |  3 
---------------------------- 
4. | Sarah. |  2 
---------------------------- 
5. | Jessica. |  3 
---------------------------- 
6. | Parker. |  3 

表如今在现实中,我将有一个记录万元,约1000种不同CAMPAIGNID,每次我只能处理3000条记录,所以我想选择3000条记录并处理它们,然后获得另外3000条记录并处理它们,等等。 当我从数据库中选择3000条记录时,我希望根据总记录中存在的campaignid百分比来获取行。例如,在上面的例子中,campaignid 3是50%,2是33.33%,1是17.77%。现在,如果这也是一百万条记录的收集,我不得不从中选择3000条记录,那么campaignid 3应该是1500次,活动id 2应该是999次,其余的应该是活动id 1,即50%分别为33.3%和17%。

请任何人都可以帮我解决这个问题。我正在使用Mysql数据库。

回答

0

你可以试试MySQL的FOUND_ROWS()函数。例如:

mysql> SELECT SQL_CALC_FOUND_ROWS * FROM tbl_name 
    -> WHERE id > 100 LIMIT 10; 
mysql> SELECT FOUND_ROWS(); 

第二个SELECT返回一个数字,表示有多少行的第一选择将返回了它没有LIMIT条款被写入。