SQL: удаление таблиц с префиксом

Попытайтесь использовать mb_detect_encoding функция . Эта функция исследует Вашу строку и попытку "предположить", каково ее кодирование. Можно затем преобразовать его, как желаемый. Как brulak предложил , однако, Вы - вероятно, более обеспеченное преобразование к UTF-8, а не от , для сохранения данных, которые Вы передаете.

91
задан Brian Tompsett - 汤莱恩 14 January 2017 в 15:37
поделиться

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_%';
162
ответ дан 24 November 2019 в 06:41
поделиться

Вы можете сделать это с помощью одной команды с MySQL:

drop table myprefix_1, myprefix_2, myprefix_3;

Вам, вероятно, придется собрать тем не менее, список таблиц динамически отображается в коде.

Альтернативным подходом было бы использование библиотеки подпрограмм общего назначения для MySQL 5.

2
ответ дан 24 November 2019 в 06:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: