急求,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 ...
如果新记录在三个表中都没有,就判断今天日期插入到对应的表,如果其中一个有已经有这个记录,就不能再插入了,特别重量级感谢!
展开
 我来答
阳光上的桥
2019-07-21 · 知道合伙人软件行家
阳光上的桥
知道合伙人软件行家
采纳数:21423 获赞数:65809
网盘是个好东东,可以对话和传文件

向TA提问 私信TA
展开全部
第一步是判定三个表中哪个表有数据,如果有就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 ... ";
}
.....继续后面的代码吧
更多追问追答
追问
感谢,如果现有记录就有上亿条,貌似用count会用时较长吧,有用发现就停止的方法吗,累计方法比较耗时间!
追答
确实出乎我的意料,上亿记录还用mysql,还这样分表,我还以为是无聊的考试。
为了加快速度可以分别三次查询,不用count(*),语句为SELECT id WHERE ... LIMIT 1
利弘扬0hv
2019-07-21 · TA获得超过854个赞
知道小有建树答主
回答量:727
采纳率:70%
帮助的人:89.9万
展开全部
insert into 新表
select * from 原表
;
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式