2012-02-09 46 views
-2

任何人都可以建议我从数据库中删除多个表的查询。像.......mysql下降多个表使用哪里或不是像条件?

删除表不像'prefix%';

请建议我做正确的查询吗?

+2

可能复制到http://stackoverflow.com/questions/8393550/mysql-drop -tables与 - 通配符使用专用-SQL语句 – 2012-02-09 06:45:21

回答

2

你不能只是一个单一的MySQL命令做到这一点,但是你可以使用MySQL来构造语句您:

在MySQL外壳中或通过phpmyadmin,使用以下查询

SELECT CONCAT('DROP TABLE ', GROUP_CONCAT(table_name) , ';') 
AS statement FROM information_schema.tables 
WHERE table_name LIKE 'myprefix_%'; 

这将生成一个DROP语句,您可以复制并执行以删除这些表。

编辑:这里的免责声明 - 上面生成的声明将使用该前缀删除所有数据库中的所有表。如果你想将其限制在一个特定的数据库,修改查询,看起来像这样并用自己的数据库名称替换数据库名称:

SELECT CONCAT('DROP TABLE ', GROUP_CONCAT(table_name) , ';') 
AS statement FROM information_schema.tables 
WHERE table_schema = 'database_name' AND table_name LIKE 'myprefix_%';