急求,php mysql 同一数据库含三个一样的表,要求插入数据自动选一个,1-10一个,10-20一个,21-31一个
急求,phpmysql,在(book)数据库含三个(book1、book2、book3)表,并且字段一模一样,要求每月1-10日用book1,11-20日用book2,2...
急求,php mysql ,在(book)数据库含三个(book1、book2、book3)表,并且字段一模一样,要求每月1-10日用book1,11-20日用book2,21-31日用,每次插入以"学号"为关联的唯一条件,如:
$day=date("d")
if ($day<10)
insert into .....
if ($day>10 and $day<=20)
insert into ....
if ($day>20)
insert into ...
如果新记录在三个表中都没有,就判断今天日期插入到对应的表,如果其中一个有已经有这个记录,就不能再插入了,特别重量级感谢! 展开
$day=date("d")
if ($day<10)
insert into .....
if ($day>10 and $day<=20)
insert into ....
if ($day>20)
insert into ...
如果新记录在三个表中都没有,就判断今天日期插入到对应的表,如果其中一个有已经有这个记录,就不能再插入了,特别重量级感谢! 展开
2个回答
展开全部
第一步是判定三个表中哪个表有数据,如果有就update,否则按照今天的日期插入到新表,没有任何技术难点呀,只要这样的逻辑设计让写代码的人心情不爽了而已,大致逻辑如下:
$no=123;//学号
$sql="select 'book1',count(*) from book1 where no=$no union select 'book2',count(*) from book2 where no=$no union select 'book3',count(*) from book3 where no=$no";
$res=mysql_query($sql);
$row=mysql_fetch_row($res);
mysql_free_result($res);
if ($res==fasle){//三表均没有
$day=date("d");
if ($day<10) $tab='book1'; elseif ($day>20) $tab='book3'; else $tab='book2';
$sql="inert into $tab (no) values('$no')";
}else{
$tab=$row[0];
$sql="update $tab ... ";
}
.....继续后面的代码吧
$no=123;//学号
$sql="select 'book1',count(*) from book1 where no=$no union select 'book2',count(*) from book2 where no=$no union select 'book3',count(*) from book3 where no=$no";
$res=mysql_query($sql);
$row=mysql_fetch_row($res);
mysql_free_result($res);
if ($res==fasle){//三表均没有
$day=date("d");
if ($day<10) $tab='book1'; elseif ($day>20) $tab='book3'; else $tab='book2';
$sql="inert into $tab (no) values('$no')";
}else{
$tab=$row[0];
$sql="update $tab ... ";
}
.....继续后面的代码吧
更多追问追答
追问
感谢,如果现有记录就有上亿条,貌似用count会用时较长吧,有用发现就停止的方法吗,累计方法比较耗时间!
追答
确实出乎我的意料,上亿记录还用mysql,还这样分表,我还以为是无聊的考试。
为了加快速度可以分别三次查询,不用count(*),语句为SELECT id WHERE ... LIMIT 1
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询