Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Cách chọn từ tên bảng động

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;

Ví dụ về SQLFiddle




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách tốt nhất để không chuẩn hóa dữ liệu trong Django?

  2. Thiết lập phiên bản mới của MySQL Mật khẩu gốc hiện tại là gì?

  3. Cơ sở dữ liệu góc:Hướng dẫn mới bắt đầu để công cụ lưu trữ Mysql

  4. nhóm đếm mysql bằng cách có

  5. MySQL Visual Studio Không thể tạo cửa sổ thiết kế cho đối tượng đã chọn