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

SQL Select bao gồm Kiểu dữ liệu và Giá trị dữ liệu

Bạn có thể SELECT EMPLOYEE.COL1, INFO.DATA_TYPE FROM EMPLOYEE, INFORMATION_SCHEMA.COLUMNS INFO WHERE INFO.TABLE_NAME='EMPLOYEE' AND COLUMN_NAME='COL1' Nhưng để chọn nhiều trường hơn, bạn phải thêm một bản sao khác của INFORMATION_SCHEMA.COLUMNS một lần nữa với một bí danh khác.

Nhưng bạn không nên làm điều này vì nhiều lý do.

Về mặt kỹ thuật:CROSS JOIN (các bảng trong FROM được liệt kê đơn giản bằng dấu phẩy) gây nhiều áp lực cho máy chủ cơ sở dữ liệu. FROM T1, T2 ghép tất cả các hàng của T1 với tất cả các hàng của T2 và kiểm tra các hàng kết quả. Nếu T1 có n hàng và T2 có m thì kết quả có n * m hàng.

Hợp lý 1:Bạn không cần trả lại thông tin này. Khi bạn nhập một truy vấn (một CHỌN), lược đồ trả về đã biết; Truy vấn xác định kiểu dữ liệu của các cột kết quả. Về mặt lý thuyết 2:Vì mọi hàng đều có cùng kiểu dữ liệu trong các cột, bạn không cần trả về thông tin kiểu trong mỗi hàng. Ví dụ. ví dụ của bạn về việc trả lại dữ liệu của 1000 nhân viên sẽ chuyển một cách không cần thiết trên mọi dòng rằng trường AGE là INTEGER, NAME là VARCHAR, v.v.

Nếu bằng cách nào đó bạn không biết lược đồ của kết quả (ví dụ:do các truy vấn được tạo hoặc tương tự) thì giải pháp trên sẽ không giúp được bạn.




  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 sao một số loại truy vấn chuẩn bị sử dụng PDO trong PHP với MySQL lại chậm?

  2. Làm cách nào để biết giao dịch nào đang gây ra trạng thái khóa siêu dữ liệu bảng Đang chờ?

  3. Phân trang truy vấn tùy chỉnh Cakephp

  4. Sự khác biệt giữa giá trị NULL và giá trị trống trong Mysql

  5. Nhận kết quả truy vấn đếm khi bỏ qua câu lệnh LIMIT