Основная идея состоит в том, чтобы запустить «показ таблиц» в вашей базе данных и использовать полученные результаты для выбора
таблицы, которые вы хотите. Я не думаю, что MySQL позволяет вам что-либо делать с набором результатов из "show tables",
но я наверное ошибаюсь
Вот быстрое и грязное решение с использованием оболочки:
mysql -u your_user -D your_database_name -e "show tables" -s |
egrep "^Whatever_" |
xargs -I "@@" echo mysql -u your_user -D your_database_name -e "DROP TABLE @@"
Это выведет все команды оболочки для удаления таблиц, начинающихся с «Wh независимо_». Если вы хотите, чтобы он действительно выполнял эти команды, удалите слово «эхо».
РЕДАКТИРОВАТЬ : Я забыл объяснить выше! Я не знаю, насколько вы знакомы со сценариями оболочки, но здесь говорится:
mysql -u your_user -D your_database_name -e "show tables" -s
распечатывает список всех ваших таблиц с заголовком "Tables_in_your_database_name". Вывод этого передается по конвейеру (символ | означает «передано по каналу», как и при передаче) через следующую команду:
egrep "^Whatever_"
ищет любые строки, которые начинаются (эти символы ^ означают «существа с»), слово «Whither_» и печатает только те. Наконец, мы передаем этот список таблиц «Whither_ *» через команду:
xargs -I "@@" echo mysql -u your_user -D your_database_name -e "DROP TABLE @@"
, которая берет каждую строку в списке имен таблиц и вставляет ее вместо «@@» в команде
echo mysql -u your_user -D your_database_name -e "DROP TABLE @@"
Таким образом, если бы у вас было несколько таблиц с именами «Whither_1», «Whwhat_2», «Whever_3», сгенерированные команды были бы:
echo mysql -u your_user -D your_database_name -e "DROP TABLE Whatever_1"
echo mysql -u your_user -D your_database_name -e "DROP TABLE Whatever_2"
echo mysql -u your_user -D your_database_name -e "DROP TABLE Whatever_3"
Что бы вывести следующее:
mysql -u your_user -D your_database_name -e "DROP TABLE Whatever_1"
mysql -u your_user -D your_database_name -e "DROP TABLE Whatever_2"
mysql -u your_user -D your_database_name -e "DROP TABLE Whatever_3"
Надеюсь, этого было достаточно, и я не просто бью кого-то по голове слишком большим количеством информации. Удачи и будьте осторожны при использовании команды «DROP TABLE»!