What about using PREPARED STATEMENTS in a stored procedure?

Something like:

CREATE PROCEDURE `GetInventory`( IN strTableName VARCHAR(50), ...)
BEGIN
        SET @strSQL = CONCAT("SELECT * FROM ", strTableName);
        ...
        ...
        PREPARE Statement FROM @strSQL;
        EXECUTE Statement;
        DEALLOCATE PREPARE Statement;
END

Of course, you can build any type of statement to execute using this
technique.  One thing to know is that the prepared statements don't get
put into the query cache.

Hope this helps...

Randall Price

Secure Enterprise Technology Initiatives
Microsoft Implementation Group
Virginia Tech Information Technology
1700 Pratt Drive
Blacksburg, VA  24060

Email:  [EMAIL PROTECTED]
Phone:  (540) 231-4396

-----Original Message-----
From: Ed Lazor [mailto:[EMAIL PROTECTED] 
Sent: Tuesday, June 26, 2007 4:37 PM
To: 'Octavian Rasnita'; mysql@lists.mysql.com
Subject: RE: select statement with variable for table_reference?

Ok, I used your approach like this:

--------------------------------------------------------------
select i.scanned_barcode, v.title from inventory as i
left join version as v on i.record_id = v.id
where
i.database_id = '1' AND i.table_id = '1' AND
i.user_id = '33' and category_id = '766')

UNION

(select i.scanned_barcode, v.title from inventory as i
left join amg.dvd as v on i.record_id = v.id
where
i.database_id = '2' AND i.table_id = '3' AND
i.user_id = '33' and category_id = '766')


order by title DESC
--------------------------------------------------------------

It "works" like you're suggesting.  I have to add a union for every one
of
the tables data is being stored in.  That means I end up selecting
something
from every product table, regardless of whether the user actually has
something in there or not.  Improving on this idea would be finding a
way to
just query the relevant tables... some sort of conditional union.  Any
ideas?

-Ed



> -----Original Message-----
> From: Octavian Rasnita [mailto:[EMAIL PROTECTED]
> Sent: Tuesday, June 26, 2007 1:02 PM
> To: Ed Lazor; mysql@lists.mysql.com
> Subject: Re: select statement with variable for table_reference?
> 
> I am using the following method for doing this, but I am sure it is
not
> the
> best one:
> 
> (select id, title, author, 'book' as type from books)
> union
> (select id, title, author, 'cd' as type from cds)
> union
> (select id, title, author, 'dvd' as type from dvds)
> where ...
> order by ...
> limit ...;
> 
> Octavian



-- 
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:
http://lists.mysql.com/[EMAIL PROTECTED]


--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:    http://lists.mysql.com/[EMAIL PROTECTED]

Reply via email to