2016-12-13 3 views
0

рассмотрите таблицу.Можем ли мы добавлять имена переменных в запросы mysql?

id count  dates 
1  10  2016-11-12 
2  20  2016-11-12 
3  20  2016-11-12 
4  20  2016-11-13 
5  20  2016-11-13 
6  20  2016-11-14 

Я создаю Test.sql файл , который содержит

select * from table_name, где даты = 2016-11-12;

Если мне нужно найти строки на дату 2016-11-13, мне нужно изменить условия в моем файле .sql.

то, что я хочу, я могу объявить имя переменной в верхней части моего .SQL или вне моего файла

, который имеет переменную DateSelect и я изменить только то, что и дату в моих изменениях .sql автоматически.

например.

внутри Test.sql

declare DateSelect = 2016-11-12 

select * from table_name where dates = DateSelect; 

, а затем я могу изменить DateSelect на то, что я хочу.

Я столкнулся с этой документацией, но я не мог понять ее полностью, поскольку я новичок в mysql. Variable substitution in SQL statements Любые идеи, как я достичь этого, заранее спасибо

ответ

1

Да, вы можете, обернув запрос в хранимой процедуре, как

create procedure usp_sql(@datevar datetime) 
as 
begin 
select * from table_name where dates = @datevar; 
end 

Тогда вы можете назвать его как

call usp_sql('2016-11-12'); 

Пер ваш последний комментарий, см. текущую должность Pass parameter to MySQL script command line

+0

: А может я также дать несколько аргументов в usp_sql (__) – Shubham

+0

@SRingne, да вы можете абсолютно ..., как много вы хотите – Rahul

+0

, если я вас понимаю полностью, я должен сохранить этот код, как Test.sql так как будет использовать вызов usp_sql()? – Shubham

0

Вы можете использовать внутренние вары, используя WbVar назначает. Вам просто нужно присвоить значение переменной, которую вы хотите, и поместить эту переменную в запрос. Это займет значение, которое вы назначили. Я надеюсь, что это помогает.