Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Sparametryzowana nazwa tabeli

Jedynym sposobem, bez dynamicznego budowania zapytań, jest napisanie kodu w każdej kombinacji i wybranie tego, który chcesz.


Jeśli nazwa tabeli jest parametrem procedury składowanej, może to być w blokach IF. Ale wydaje się niezgrabne.


Jeśli pola z każdej tabeli są takie same, możesz połączyć tabele i wybrać spośród nich...

CREATE VIEW myUnifiedStructure AS
      SELECT 'Table1' AS tableName, * FROM Table1
UNION SELECT 'Table2' AS tableName, * FROM Table2
UNION SELECT 'Table3' AS tableName, * FROM Table3
-- etc

SELECT * FROM myUnifiedStructure WHERE tableName = 'Table1'


Jeśli pola są różne w każdej tabeli, możesz być zainteresowany tylko podzbiorem pól...

CREATE VIEW myUnifiedStructure AS
      SELECT 'Table1' AS tableName, field1 AS field1, field4 AS field2 FROM Table1
UNION SELECT 'Table2' AS tableName, field2 AS field1, field3 AS field2 FROM Table2
UNION SELECT 'Table3' AS tableName, field2 AS field1, field4 AS field2 FROM Table3
-- etc


Możesz też podać wartości NULL dla pól, które nie istnieją w tabeli źródłowej...

CREATE VIEW myUnifiedStructure AS
      SELECT 'Table1' AS tableName, NULL   AS field1, field2 AS field2 FROM Table1
UNION SELECT 'Table2' AS tableName, field1 AS field1, field2 AS field2 FROM Table2
UNION SELECT 'Table3' AS tableName, field1 AS field1, NULL   AS field2 FROM Table3
-- etc


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Wybieranie losowego wpisu z bazy danych MySQL

  2. MySQL - WYBIERZ JAKO w WHERE

  3. W MySQL, jak skopiować zawartość jednej tabeli do innej tabeli w tej samej bazie danych?

  4. jak uzyskać różne wiersze o maksymalnej wartości

  5. mysql skomplikowany sql