mysql使用where或不喜欢条件删除多个表?

时间:2012-02-09 06:44:18

标签: php mysql sql

任何人都可以建议我从数据库中删除多个表的查询。像.......

  

Drop table不像'prefix%';

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

1 个答案:

答案 0 :(得分:2)

只使用一个MySQL命令就无法做到这一点,但是您可以使用MySQL为您构建语句:

在MySQL shell中或通过PHPMyAdmin,使用以下查询

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

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

编辑:此处的免责声明 - 上面生成的语句将删除具有该前缀的所有数据库中的所有表。如果要将其限制为特定数据库,请将查询修改为如下所示,并将database_name替换为您自己的database_name:

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