如何删除所有前缀为myprefix_的表?

注意:需要在phpMyAdmin中执行

推荐答案

您不能只使用一个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语句,您可以通过复制和执行该语句来删除表.

编辑:这里有一个免责声明——上面生成的语句将删除所有数据库中具有该前缀的所有表.如果要将其限制为特定数据库,请将查询修改为如下所示,并用自己的数据库名称替换数据库名称:

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

Mysql相关问答推荐

MySQL 8.0.34-从后端系统管理AWS RDS上的持久连接内存使用

数组上的MySQL、JSON_CONTAINS用法

仅获取我不是最后一个 comments 者的博客帖子

布尔值之间的 SQL less/greater 比较会产生意外结果

错误:此查询集包含对外部查询的引用,并且只能在子查询中使用

从单行中获取最大日期的最佳方法

将 JSON 类型的列与特定字符串值进行比较

替代对多个表执行 FULL OUTER JOIN?

基于多个 where 子句在规范化表中查找公共 ID(值)

SQL使用LIMIT获取结果和结果中的行数

创建表时我的 SQL 语句有什么问题

为什么 fetch 方法不能获取任何东西?(feat node.js,restAPI)

从 SQL 中的左连接和内连接中减go 计数

了解 SQL 中的元组语法

如何查询打印已售罄的产品? [MYSQL]

SUBSTRING_INDEX 获取第 n 个值

如何存储百分比值?

我应该使用什么列数据类型来存储大量文本或 html

使用 PHP 和 MySQL 存储和显示 unicode 字符串 (हिन्दी)

phpMyAdmin - 无法连接 - 无效设置 - 自从我添加了 root 密码 - 被锁定