有表 A B C D E F GA.id = B.aid = C.aid = D.aid = E.aid = F.aid = G.aid现在要把id为1的数据在所有表中全部删除刚开始写的循环删除 但执行效率太慢了有没有更好的办法使效率更高
解决方案 »
- PHP程序员工资怎么样,比JSP好吗?
- 怎么检测 $db->query("select ...")返回的结果集是否为空
- 【请问:】linux下安装Apache2+MYSQL5+PHP5 可不可以在XWindow下的终端界面里安装?
- 老板要起诉我,大家帮我出出主意啊!!(散分)
- PHP 中高级需要掌握哪些知识和技能
- 我看只有高手才能解决这个问题了?
- 11256这样的编码是什么意思啊?怎么转成正常的?
- 有关向PHP传参的问题,请指教。
- 请教MySQL语句,group by相关
- 怎样才能取得javascrip函数传过来的参数呢?
- 帝国cms首页如何调取自定义的字段
- php webservices 开发
delete from B where aid=1;
.........................
我也是这么写的 循环array(A,B,C,D,E,...);然后删除的 可能由于表中数据太多(大概一百三十万条左右)
删除一条大概需要3 4秒
那你的sql是怎么写的,不然优化下你的sql
在循环中逐个操作如果都是 InnoDB 类型表
那么在除 A 外的表的 aid 上建 A.id 的外键
只 delete from A where id=1 即可
效率不是主要问题,让他慢慢做就是了但是php为防止SQL注入,每次只能执行一条SQL指令
$sql = 'DELETE FROM A WHERE id=1;DELETE FROM B WHERE aid=1;DELETE FROM C WHERE aid=1;DELETE FROM D WHERE aid=1;DELETE FROM E WHERE aid=1;DELETE FROM F WHERE aid=1;DELETE FROM G WHERE aid=1 ';
shell_exec('mysql -uroot -p1234 aaa -e "'.$sql.'"');
这样就好许多了 这就结贴