mysql 数据库批量删除同一前缀的数据表

例如我一个名为123的数据库里有一个A前缀和B前缀和C前缀的数据表表太多了备份起来文件太大B前缀的数据表是没用的如何批量删除B前缀的数据表?A前缀和C前缀的都要保留这两个... 例如 我一个名为123的数据库里有一个A前缀和B前缀和C前缀的数据表 表太多了 备份起来文件太大 B前缀的数据表是没用的 如何批量删除B前缀的数据表? A前缀和C前缀的都要保留 这两个都还在用的

如何操作?
补充一下: 如果我要删的数据表前缀为 home

请问leeyige 如何生成语句? 有点看不懂你的那个语句

songtree0119:详细实际操作方法是怎样?
陪你浪漫 : 感谢回答 前提条件还真的是不能访问数据库主机的文件目录
jlake :感谢回答 虽然也是一个办法 可还是觉得不实际 不能达到批量删除的效果 还是得一个表名的复制有点麻烦
leeyige:感谢回复 等待你的下一步解答
展开
 我来答
百度网友a800768
推荐于2016-06-09 · TA获得超过1841个赞
知道大有可为答主
回答量:1928
采纳率:0%
帮助的人:1728万
展开全部
先建立一个删除脚本

运行下语句
select 'drop table '+name from sysobjects where type='U' and name like 'B%'

会出来查询结果,将查询结果复制出来
然后在数据库123中运行复制出来的查询结果
百度网友a435633
2010-04-07 · TA获得超过1234个赞
知道大有可为答主
回答量:1018
采纳率:0%
帮助的人:0
展开全部
先把表名列出来
show tables;
然后把你要删除的表名复制下来;
表名中间加逗号
比如
B_table1, B_table2, B_table3 ...

然后在这些表名前面加 DROP TABLE
变成
DROP TABLE B_table1, B_table2, B_table3 ...

执行以上语句即可。

补充:
以上是手动的方法,可以用脚本实现

<?php
//以下参数根据自己的环境设置
$server = "localhost";
$mydb = "dbname";
$user = "root";
$pass = "";

$link = mysql_connect($server, $user, $pass);
$db = mysql_select_db($mydb, $link);
$result = mysql_query("show tables");

$tables = array();
while($row = mysql_fetch_row($result)) {
if(strpos($row[0], 'B_') === 0) //修改前缀在这儿
$tables[] = $row[0];
}

mysql_free_result($result);

print_r($tables);

$sql = 'DROP TABLES '.join(',', $tables);
echo $sql."\n";

if(mysql_query($sql)) {
echo "删除成功\n";
} else {
echo "删除失败\n";
}

mysql_close($link);
?>

把以上代码中的 B_ 修改成实际的前缀,保存成文件,如 del_tables.php,然后执行

php del_tables.php

即可
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友0aed80c
2013-03-22 · 贡献了超过198个回答
知道答主
回答量:198
采纳率:0%
帮助的人:98.3万
展开全部
DROP TABLE `dede_myad`,`dede_myadtype`,`dede_mytag`;

注意表名的小引号是键盘数字那一排的第一个,``~~ 不是单引号
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友c2cca8b63
2010-04-02 · TA获得超过1342个赞
知道小有建树答主
回答量:653
采纳率:0%
帮助的人:768万
展开全部
Sql里没有.
但是你可以直接进入到Mysql的数据文件夹下
默认是Data的123文件夹中把B前缀的都删掉
每一个表就是一个文件
如:
cd E:\MySQL\MySQL Server 5.0\data\spagobi
del b*.frm;

前提是你能访问到Mysql数据库所在的主机
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
songtree0119
2010-04-02 · TA获得超过323个赞
知道小有建树答主
回答量:522
采纳率:100%
帮助的人:254万
展开全部
你可以用php先把B前缀的记录下来,然后用php批量给删除了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式