sql >> Database >  >> RDS >> Mysql

Hoe te selecteren uit dynamische tabelnaam

Je opent 1 ( en sluit 2 ) . Verwijder de laatste:

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

Bewerken

de tweede verklaring zou waarschijnlijk

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

Dat werkt, maar ik weet niet zeker of je dat wilt:

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;

Bewerken2

Als ik je goed heb begrepen, ben je op zoek naar die ene vraag:

select * from changes
where change_column in (select distinct concat(`year`, `month`) from whichchanges)

Bewerken3

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-voorbeeld




  1. Geavanceerde databasebewaking en -beheer voor TimescaleDB

  2. Hoe een 128-bits nummer op te slaan in een enkele kolom in MySQL?

  3. Hoe Oracle Stored Procedure in Python aan te roepen?

  4. Een eerste blik op de nieuwe SQL Server Cardinality Estimator