【问题标题】:MySQL Drop table doesn't work for prefixMySQL Drop table 不适用于前缀
【发布时间】:2013-07-12 03:10:49
【问题描述】:

我正在尝试删除带有 wp_ 前缀的表,但它在下面给出错误

Error 1064: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE TABLE LIKE 'wp_%'' at line 1

这是我的查询

"DROP TABLE WHERE TABLE LIKE '{$wp}%'"

这个查询有什么问题?请帮忙

【问题讨论】:

    标签: mysql sql-drop


    【解决方案1】:

    据我所知,您不能选择性地delete 表。您必须专门delete 每个表,因为删除不能使用过滤器。您可能可以使用元数据来获取所有表的名称,然后在您的代码中找出哪些以wp_ 开头。然后,您只需遍历要删除的表列表,然后使用drop table [table-name]; 删除它们。

    要从元数据中获取表名列表,请使用select table_name from information_schema.tables;

    【讨论】:

    • 好的,所以 information_schema.tables 只会检查当前数据库?
    • 我很确定,是的。如果您想更改正在查看的数据库,请使用use [database-name];
    • 不不,我只想在当前数据库中做。
    • 我已经尝试过这段代码,但它没有删除表格,只是显示。SELECT CONCAT('DROP TABLE ',table_name,';') FROM information_schema.tables WHERE table_name LIKE '{$wp}%'
    • 我不太确定那个查询...我对 MySQL 了解不多(只比回答您的问题所需的多一点)。请查看SELECT with CONCAT 寻求帮助。
    猜你喜欢
    • 2012-03-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-24
    • 2020-11-26
    • 2016-11-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多