分表联合查询,请大侠修改,提供源码,谢谢!!

baidu_36956116 2016-12-07 12:07:15
表qiu_job中的ID太多,我想分到表qiu_job2的ID中,如果新增的ID值存在qiu_job或qiu_job2的ID中,就拒绝添加;如果新增的ID值不存在上述2表中,就将之添加到qiu_job2的ID中,请问要如何写呢?谢谢!谢谢!

未分表的源代码在:http://sbbt.gou-w.cn/1.txt中。
以下为未分表之前的源码:
<?php
require 'common.php';
$url=daddslashes($_GET['url']);
$key=daddslashes($_GET['key']);
if(!empty($url) && !empty($key)){
$kmrow=$DB->get_row("SELECT * FROM qiu_kms WHERE km='$key' and kind=1 limit 1");
if(!$kmrow['id'])
exit('{"code":-9}');
if($kmrow['isuse']==1)
exit('{"code":-4}');
$data = get_curl($url,0,0,0,1);
preg_match("/Location: (.*?)\r\n/iU", $data, $urls);
if(!$urls[1]) $long_url=$url;else $long_url=$urls[1];
if(strpos($long_url,'www.battleofballs.com')===false){
exit('{"code":-3}');
}
$refer = str_replace("?","/index_mobile_share.html?",$long_url);
$account = explode('Account=',$refer);
$account = urldecode($account[1]);
$id = intval(trim(getSubstr($refer,"id=","&A")));
$row=$DB->get_row("SELECT * FROM qiu_job WHERE id='$id' limit 1");
if($row){
if($row['endtime']>$date)
exit('{"code":-11}'); //我自己瞎改的,我的要求是只要ID值存在数据库中,就拒绝添加并提示错误。
else
if($row['id']>'1') //我自己瞎改的,我的要求是只要ID值存在数据库中,就拒绝添加并提示错误。
exit('{"code":-3}');
}else{
$endtime=date("Y-m-d H:i:s", strtotime("+ {$kmrow['value']} days"));
if(!$DB->query("update qiu_kms set isuse='1',user='$id',usetime='$date' where id='{$kmrow['id']}'"))exit('{"code":-5}');
if(!$DB->query("insert into `qiu_job2` (`id`,`addtime`,`endtime`) values ('".$id."','".$date."','".$endtime."')"))exit('{"code":-8}');
exit('{"id":"'.$id.'","account":"'.$account.'","keyday":"'.$kmrow['value'].'","endtime":"'.$endtime.'","code":0}');
}
}else{
exit('{"code":-2}');

}
...全文
216 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
我是csd_ner 2016-12-08
  • 打赏
  • 举报
回复
太牛了,谢谢楼主分享
LongRui888 2016-12-07
  • 打赏
  • 举报
回复
这个在并发的情况下是否会有问题? 我觉得需要在判断数据是否存在的时候,把数据锁住
baidu_36956116 2016-12-07
  • 打赏
  • 举报
回复
引用 7 楼 xuzuning 的回复:
把一件简单的事情弄的那么复杂 6000 条记录根本用不着分表 即便要分表,MySQL 也已经提供分表功能,一行代码都不用改
版主大大你好,小弟不才,不懂哦,哥有更好的方法吗? 数据量不大,但是特殊原因,必须分表哦,而且分表中的I能重D数据不复,请问MYSQL怎么自动分表呢?谢谢指点
xuzuning 2016-12-07
  • 打赏
  • 举报
回复
把一件简单的事情弄的那么复杂 6000 条记录根本用不着分表 即便要分表,MySQL 也已经提供分表功能,一行代码都不用改
baidu_36956116 2016-12-07
  • 打赏
  • 举报
回复
数据量不大,6000个ID左右,但是会有很多个分表,哥能给一下分步查询的方法吗?谢谢了
baidu_36956116 2016-12-07
  • 打赏
  • 举报
回复
引用 3 楼 dongtest 的回复:
联合查询 SELECT id FROM qiu_job WHERE id='$id' UNION SELECT id FROM qiu_job2 WHERE id='$id' 如果没有插入到表2
谢谢哥,您帮我解决了难题,请问您的支付宝账号是什么?钱不多,是小弟的心意哦
walk walk 2016-12-07
  • 打赏
  • 举报
回复
如果考虑到qiu_job2表很大的话,那就分两步,先查qiu_job 如果 qiu_job 中存在就跳过,如果qiu_job 没有再进一步查表2
walk walk 2016-12-07
  • 打赏
  • 举报
回复
联合查询 SELECT id FROM qiu_job WHERE id='$id' UNION SELECT id FROM qiu_job2 WHERE id='$id' 如果没有插入到表2
baidu_36956116 2016-12-07
  • 打赏
  • 举报
回复
qiu_job的ID满了6000个,这个表就不动了,将新增的ID写入到qiu_job2中,这样会存在问题么? 问题是,我现在这个代码不知道怎么写呀,大哥你会吗?能帮帮忙吗?谢谢。20元当做答谢,钱不多,莫怪哦

20,358

社区成员

发帖
与我相关
我的任务
社区描述
“超文本预处理器”,是在服务器端执行的脚本语言,尤其适用于Web开发并可嵌入HTML中。PHP语法利用了C、Java和Perl,该语言的主要目标是允许web开发人员快速编写动态网页。
phpphpstorm 技术论坛(原bbs)
社区管理员
  • 开源资源社区
  • phpstory
  • xuzuning
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧