You open 1 (
and close 2 )
. Delete last:
SELECT CONCAT('changes',year,month) FROM changes
Edit
the second statement should be
SET @x := SELECT * FROM (@b) as b;
This works, but not sure if this is what you want:
SET @b := 'SELECT CONCAT(''changes'',`year`,`month`) FROM whichchanges'; SET @x := 'SELECT * FROM (SELECT CONCAT(''changes'',`year`,`month`) FROM whichchanges) as b'; Prepare stmt FROM @b; Prepare stmt FROM @x; Execute stmt;
Edit2
If I understood correctly, you are looking for this single request:
select * from changes where change_column in (select distinct concat(`year`, `month`) from whichchanges)
Edit3
select @b := group_concat(concat(' select * from changes', `year`, `month`, ' union ') separator ' ') as w from whichchanges; set @b := left(@b, length(@b) - 6); Prepare stmt FROM @b; Execute stmt;
SQLFiddle example
source share