optimization - Same variable in parameter in mysql store procedure -


how cache dynamic query store procedure? right have created store procedure :

create procedure usp_myprocedure (   in userid int,   ....  ) begin     set @sqlquery = concat("select name users userid > ", userid, " , userid  in ( select userid othertable userid = ", userid, " ) order name")      prepare stmt @sqlquery;    execute stmt;    deallocate prepare stmt;  end; 

but kind of query not cached. so, every time gets more time execute/process query.

now have tried other method this:

create procedure usp_myprocedure (   in userid int,   ....  ) begin    set @userid = userid;     set @sqlquery = "select name users userid > ? , userid  in ( select userid othertable userid = ? ) order name";     prepare stmt @sqlquery;    execute stmt @userid, @userid; -- here passed same variable twice.    deallocate prepare stmt; end; 

in above case have pass same variable (@userid) twice, because used 2 times in query. job hectic in long or complex query. so, how avoid this?

one method tried follows:

create procedure usp_myprocedure (   in userid int,   ....  ) begin    set @userid = userid;     set @sqlquery = "select name users userid > @userid , userid  in ( select userid othertable userid = @userid ) order name";     prepare stmt @sqlquery;    execute stmt;    deallocate prepare stmt; end; 

but above query again not cached. so, execution time long. , type of variable declared session global variable has may conflict store procedure's variable. because have call store procedure within store procedure , variable name should same in store procedure.

so, let me know best solution same.

thanks.

sorry posted mistaken one,

delimiter // create procedure yourprocedurenamehere(in state char(2)) begin set @mystate = state; set @sql = concat('select * blablabla bla = ?'); prepare stmt @sql; execute stmt using @mystate; end; // 

sorry pal, edited code hahaha got wrong


Comments

Popular posts from this blog

php - Why I am getting the Error "Commands out of sync; you can't run this command now" -

linux - Does gcc have any options to add version info in ELF binary file? -

java - Are there any classes that implement javax.persistence.Parameter<T>? -