麻辣堂|资源主站|开发论坛|在线手册
首页 Apache Linux Java MySQL 注册帮助 
PHP项目开发组是PHP开发资源网于2007组年建成立的项目开发团队,目前核心开发成员有27人, 项目协作成员8名.下设7个开发组,主要承接大/中型网站项目开发任务。

    由于开发任务较多,人员比较紧张,现面向社会招聘全职或者兼职开发人员,不管你是在校大学生,还是全职开发人员,以及SOHO都可以联系本站,我们可以长期合作,并为您带来丰厚的报酬。
  您现在的位置:PHP开发资源网 > 麻辣堂 > 详细资料
待解决
请教一个分表情况下数据分页的问题
悬赏分:20 - 2007年08月22日

例如我们有n个表

表名   数据量
data_1  12154
data_2  9845
data_n  10032

结构都一样的,id、name、group三个字段

正常情况下的分页就不说了,目前 n 个表 的数据,要做某一组的分页,问题是如果某一页的数据在多个表之内,我的思路是否高效就不知道了,请高手指教。

我的做法是先统计一下各表在要求条件下的数据量,然后取出需要联合查询哪两个表,例如:where group=2 的条件,每页显示10条数据。

先统计第一个表 data_1 中的数据是否够当前页的数量
select count(id) as num from data_1 where grouo=2

如果数据够一页显示的数量,则返回一个结果,就只查询这个表
如果不够10条,则记录下这个表的名字,然后统计第二个表。

直到数据够当前页的数量后,返回全部表名,然后 union 联合查询。

例如下面的数据, where group=2 各表数据量
data_1 26
data_2 5
data_3 11


分页显示第一页和第二页的时候,查询第一个表data_1就行了

查询第三页的时候,页数据起始的数量是 20,结束的数量为 30 ,则需要查询 data_1 和 data_2 两个表。


呵呵,不知道我说明白了没有,大家又没有更好的办法来解决分表情况下的分页显示问题。

谢谢!

提问者:Drifter   08-22 12:12
答复
路过。。。顺便帮顶:)
回答者:玉米づ冰冻可乐 - 瓦岗村民 8-22 09:10
我也来回答:
不管你有没有帮助我们,瓦岗寨8万村民将感谢你。。。。。

为防止灌水,您需要计算一道数学题: 答案:
30 + 76 = ? 请将计算结果填在上面

 
[]
©2007 PhpRes.COM