# Help optimize this select statement

**URL:** <https://forums.percona.com/t/help-optimize-this-select-statement/932>\
**Category:** Other MySQL® Questions\
**Created:** [September 18, 2008, 2:27am UTC](https://forums.percona.com/t/help-optimize-this-select-statement/932 "2008-09-18T02:27:22Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![Pato](https://avatars.discourse-cdn.com/v4/letter/p/f6c823/32.png) [@Pato](https://forums.percona.com/u/Pato)\
**Post date:** [September 18, 2008, 2:27am UTC](https://forums.percona.com/t/help-optimize-this-select-statement/932/1 "2008-09-18T02:27:22Z")

</div>

Hi forks,

I am new to mysql and am looking for a better way to do this.

I have a procedure in mysql which uses the following select statements to get the values in a temporary table. I would like to optimize these queries, anyone with idea how this could be done better.

SET xtrandate = (SELECT value FROM tempvalues WHERE valueid = ‘1’);  
SET xserialno = (SELECT value FROM tempvalues WHERE valueid = ‘2’);  
SET xfac = (SELECT value FROM tempvalues WHERE valueid = ‘3’);  
SET xshift = (SELECT value FROM tempvalues WHERE valueid = ‘4’);  
SET xrouteid = (SELECT value FROM tempvalues WHERE valueid = ‘5’);  
SET xcpid = (SELECT value FROM tempvalues WHERE valueid = ‘6’);  
SET xmemberid = (SELECT value FROM tempvalues WHERE valueid = ‘7’);  
SET xoptr = (SELECT value FROM tempvalues WHERE valueid = ‘8’);  
SET xwm = (SELECT value FROM tempvalues WHERE valueid = ‘9’);  
SET xnocans = (SELECT value FROM tempvalues WHERE valueid = ‘10’);  
SET xqty = (SELECT value FROM tempvalues WHERE valueid = ‘11’);  
SET xtime = (SELECT value FROM tempvalues WHERE valueid = ‘12’);  
SET xlac = (SELECT value FROM tempvalues WHERE valueid = ‘13’);  
SET xalc = (SELECT value FROM tempvalues WHERE valueid = ‘14’);  
SET xtemp = (SELECT value FROM tempvalues WHERE valueid = ‘15’);  
SET xcanid = (SELECT value FROM tempvalues WHERE valueid = ‘16’);  
SET xacceptreject = (SELECT value FROM tempvalues WHERE valueid = ‘17’);

Thanks for your time.

---

<div class="post-metadata">

**Author:** ![debug](https://sea1.discourse-cdn.com/flex019/user_avatar/forums.percona.com/debug/32/772_2.png) [@debug](https://forums.percona.com/u/debug)\
**Post date:** [September 19, 2008, 3:36am UTC](https://forums.percona.com/t/help-optimize-this-select-statement/932/2 "2008-09-19T03:36:19Z")

</div>

Can you please show structure of table and output of EXPLAIN for one of queries?

---

<div class="post-metadata">

**Author:** ![Pato](https://avatars.discourse-cdn.com/v4/letter/p/f6c823/32.png) [@Pato](https://forums.percona.com/u/Pato)\
**Post date:** [September 19, 2008, 3:44am UTC](https://forums.percona.com/t/help-optimize-this-select-statement/932/3 "2008-09-19T03:44:05Z")

</div>

Thanks man, I have already figured out what to do.

For those for maybe having a similar problem, instead of storing the values in a temporary table, I decided to store the values in an array first then passed the values of the array to the procedure.

Thanks once again.
