DROP TABLE (
SELECT table_name
FROM information_schema.`TABLES`
WHERE table_schema = 'myDatabase' AND table_name LIKE BINARY 'del%');
我知道这行不通!在 SQL 中,类似这样的东西的等价物是什么?我可以编写一个简单的 Python 脚本来执行此操作,但只是想知道我们是否可以直接使用 SQL 做一些事情。我正在使用 MySQL。谢谢!
最佳答案
您可以使用 prepared statements -
SET @tables = NULL;
SELECT GROUP_CONCAT('`', table_schema, '`.`', table_name,'`') INTO @tables FROM information_schema.tables
WHERE table_schema = 'myDatabase' AND table_name LIKE BINARY 'del%';
SET @tables = CONCAT('DROP TABLE ', @tables);
PREPARE stmt1 FROM @tables;
EXECUTE stmt1;
DEALLOCATE PREPARE stmt1;
它将生成并执行这样的语句 -
DROP TABLE myDatabase.del1, myDatabase.del2, myDatabase.del3;
关于MySQL bulk drop table where table like?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11053116/