2016-01-28 2 views
0

Я пытаюсь написать сценарий оболочки, который сбрасывает все таблицы с указанным пользователем префиксом таблицы. Ниже является частью сценария:Как включить данные из переменной в интерактивную команду MySQL?

variable=vardata 
mysql -u user -p -N information_schema -e "SELECT table_name FROM tables WHERE table_schema = 'dbname' AND table_name LIKE 'test_$variable%'" 

Доступ к переменной не может работать, как это, из-за жестких кавычек в операторе SQL, но как еще я могу это сделать? Я пробовал переменные MySQL @var, но это также не работает с оператором LIKE.

+0

Возможного дубликат [Bash: Variable в одинарных кавычках] (HTTP: //stackoverflow.com/questions/8084389/bash-variable-in-single-quote) – neuhaus

ответ

0

Вы можете попробовать что-то вроде

variable=vardata 
sql_stmt="SELECT table_name FROM tables WHERE table_schema = 'dbname' AND table_name LIKE 'test_"$variable"%'" 
mysql -u user -p -N information_schema -e "$sql_stmt" 

Надеется, что это работает

ОБНОВЛЕНО: Пер комментарий от j.doe

+0

mysql -u user -p -N information_schema -e "$ sql_stmt" <- Это работает. Большое спасибо! –

Смежные вопросы