Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Bagaimana memilih dari nama tabel dinamis

Anda membuka 1 ( dan tutup 2 ) . Hapus yang terakhir:

SELECT CONCAT('changes',year,month) FROM changes

Sunting

pernyataan kedua mungkin seharusnya

SET @x := SELECT * FROM (@b) as b;

Itu berhasil, tetapi tidak yakin apakah itu yang Anda inginkan:

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

Jika saya memahami Anda dengan benar, Anda mencari satu pertanyaan itu:

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;

Contoh 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. Bidang peningkatan database mysql menggunakan sintaks record aktif codeigniter

  2. Hapus catatan duplikat dari tabel tanpa pk atau id atau kolom unik di mysql

  3. Hubungan bersarang Laravel

  4. Tampilkan Kueri SQL Lengkap di Tampilkan Daftar Proses MySQL

  5. PHP Mengurutkan koordinat terdekat