Bạn mở 1 (
và đóng 2 )
. Loại bỏ cuối cùng:
SELECT CONCAT('changes',year,month) FROM changes
Chỉnh sửa
câu lệnh thứ hai có lẽ nên là
SET @x := SELECT * FROM (@b) as b;
Điều đó hoạt động, nhưng không chắc liệu đó có phải là điều bạn muốn hay không:
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;
Chỉnh sửa2
Nếu tôi hiểu bạn đúng, bạn đang tìm một truy vấn duy nhất:
select * from changes
where change_column in (select distinct concat(`year`, `month`) from whichchanges)
Chỉnh sửa3
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;