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

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}');

}
...全文
215 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
我是csd_ner 2016-12-08
  • 打赏
  • 举报
回复
太牛了,谢谢楼主分享
  • 打赏
  • 举报
回复
这个在并发的情况下是否会有问题? 我觉得需要在判断数据是否存在的时候,把数据锁住
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元当做答谢,钱不多,莫怪哦
本课程深入MySQL 分库分表各个环节,2023年最新课程。每个章节都会以原理深入+实际案例进行讲解。内容数据库安装,主从同步,和分表分表详解和对应的应用场景及注意事项MySQL在金融互联网行业的企业级安装部署1 安装方式2 安装用户3 目录规范4 操作系统配置5 创建用户6 创建目录7 安装8 配置文件9 安装依赖包10 配置环境变量11 初始化数据库12 重置密码 主从复制,gtid,并行复制_半同步复制_实操案例_常用命令_故障处理1 主从复制原理深入讲解2 主从复制相关参数3 主从复制架构部署4 从库状态详解5 过滤复制6 什么是GTID?7 GTID主从配置8 gtid维护9 GTID的特点10 工作原理11 gtid相关状态行和变量 MySQL分库分表目录章节1.MyCAT分布式架构入门及双主架构1.1 主从架构1.2 MyCAT安装1.3 启动和连接1.4 配置文件介绍2.MyCAT读写分离架构2.1 架构说明2.2 创建用户2.3 schema.xml2.4 连接说明2.5 读写测试2.6 当前是单节点3.MyCAT高可用读写分离架构3.1 架构说明3.3 schema.xml(配置)3.4 文件详解3.4.1 schema标签3.4.2 table标签3.4.3 dataNode标签3.4.4 dataHost3.4 读写测试3.5 故障转移4.MyCAT垂直分表4.1 架构4.2 新建表4.3 配置mycat4.4 验证6. MyCAT水平分表-取模分片取模分片7. MyCAT水平分表-枚举分片枚举分片字符枚举配置执行计划的分析8. MyCAT全局表与ER表全局与ER表8.1 全局表8.1.1 特性8.1.2 建表8.1.3 配置8.1.4 验证8.1.5 分析总结(执行计划)8.2 ER表8.2.1 特性8.2.2 建表8.2.3 配置8.2.4 测试验证,子表是否跟随父表记录分片8.2.5 分析总结(执行计划)

20,359

社区成员

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

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