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

Cách chọn động tên cột trong mySQL

Hãy thử SQLFiddle này :

CREATE TABLE atable (
  prefix1 VARCHAR(10)
  ,prefix2 VARCHAR(10)
  ,notprefix3 INT
  ,notprefix4 INT
);

INSERT INTO atable VALUES ('qwer qwer', 'qwerqwer', 1, 1);
INSERT INTO atable VALUES ('qwer qwer', 'asdfaasd', 1, 1);
INSERT INTO atable VALUES ('qwer qwer', 'qrt vbb', 1, 1);
INSERT INTO atable VALUES ('qwer qwer', 'sdfg sdg', 1, 1);

SELECT CONCAT('SELECT ', GROUP_CONCAT(c.COLUMN_NAME), ' FROM atable;')
INTO @query
FROM INFORMATION_SCHEMA.COLUMNS c
WHERE c.TABLE_NAME = 'atable'
  AND c.COLUMN_NAME LIKE 'prefix%'
ORDER BY c.ORDINAL_POSITION;

PREPARE stmt FROM @query;

EXECUTE stmt;

Một số vấn đề:

Bạn có thể sẽ muốn một số loại ĐẶT HÀNG BẰNG CÁCH trên tập hợp kết quả của bạn.

Có giới hạn cho những gì bạn có thể làm về số lượt tham gia và mọi thứ.

Bạn chuyển xác thực sang thời gian chạy, nơi mà quá trình kiểm tra có nhiều khả năng bị bỏ sót.

Bạn đang hy vọng có thể xử lý các thay đổi giản đồ một cách dễ dàng. Kỹ thuật này sẽ chỉ xử lý các thay đổi lược đồ thuộc một loại nhất định mà bạn có thể thấy trước, còn những loại khác bạn có thể sẽ phải thay đổi mã này.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tôi có thể sử dụng lại một trường được tính toán trong một truy vấn CHỌN không?

  2. Hiển thị tất cả các tên bảng trong php từ cơ sở dữ liệu MySQL

  3. Độ chậm được tìm thấy khi hình ảnh cơ sở 64 chọn và mã hóa từ cơ sở dữ liệu

  4. Làm cách nào để bạn thay đổi mức cách ly SQL từ Python bằng MySQLdb?

  5. Nhiều truy vấn nhỏ so với một truy vấn dài. Cái nào hiệu quả hơn?