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

Tên bảng được tham số hóa

Cách duy nhất mà không cần tạo các truy vấn động, là viết mã cố định trong mọi tổ hợp và chọn ra kết hợp bạn muốn.


Nếu tên bảng là một tham số của một thủ tục được lưu trữ, thì nó có thể nằm trong các khối IF. Nhưng nó cảm thấy rắc rối.


Nếu các trường từ mỗi bảng giống nhau, bạn có thể kết hợp các bảng lại với nhau và chọn từ những trường đó ...

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'


Nếu các trường trong mỗi bảng khác nhau, bạn có thể chỉ quan tâm đến một tập hợp con của các trường ...

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


Hoặc bạn có thể chuyển bằng NULL cho các trường không tồn tại trong bảng nguồn ...

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. SQL có thể tìm thấy các bản ghi có trùng lặp không?

  2. Cách tạo blog trong cơ sở dữ liệu PHP và MySQL - Backend

  3. MySQL:Nhận các sản phẩm có tất cả các thuộc tính được liệt kê

  4. Entity Framework có ràng buộc với SQL Server không?

  5. Cách truy xuất số nút dựa trên nút cha động từ tệp xsd bằng PHP