请教:目前有一现象是这样的:页面上要列出/展现出两种情况的list,比如一个是list1,一个是list2
list1是进入页面时默认的,list2是在list1的基础上的结果集
要展现list2时(即展现重复或非重复数据等),而且表数据量大,要重复或多次使用group,order之类会造成数据库运行很慢,所以在show list1结果的时候,将list2所需要的一些关键信息放入到内存表中,然后利用数据表与内存表的联表来得到结果集(先不论我这种思路是否正确啦)操作:在展现list1时:
mysql_query("create temporary table if not exists tmp_user(MemberID int(10) unsigned NOT NULL,u_type tinyint(1) NOT NULL) engine=memory");
mysql_query("truncate table tmp_user");
mysql_query("insert into tmp_user(MemberID,u_type) select b.MemberID,b.u_type from b where………");
注:创建表及插入数据都没有问题,我能用mysql_fetch_array得到内存表的结果集现在的问题:点击list1上的list2按钮(就是同一个页面的超连接,加了参数以区别罢了),会出现如下两种情况:
1、'tmp_user' doesn't exists
2、当tmp_user存在时,却是旧数据,即mysql_query("insert into tmp_user(MemberID,u_type) select b.MemberID,b.u_type from b where………"); 这里的where条件进行了变更了,但内存表的数据为未变更之前的注:我使用的是pconnect长连接方式
注2:在展现了list2后,我会drop table tmp_user请教:这是怎么回事或我哪做错了呢?或有什么检测方法?内存表