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

Ký tự đại diện MySQL được chọn

Không hẳn vậy. Bạn có thể sử dụng * ký tự đại diện cột để chọn tất cả các cột. Nếu bạn đang kết hợp nhiều bảng, bạn có thể chọn tất cả các cột từ bảng cụ thể bằng cách thêm tiền tố * với tên bảng hoặc bí danh:

SELECT a.id, a.title, b.*
  FROM articles AS a
    JOIN blurbs AS b ON a.id = b.article

Tuy nhiên, bạn không nên sử dụng * trừ khi bạn đang viết một chương trình quản trị DB.

Ngoài ra, bạn có thể xây dựng một câu lệnh trong SQL hoặc một ngôn ngữ khác bằng cách tìm nạp siêu dữ liệu bảng để lấy tên cột. Chỉ sử dụng MySQL, bạn có thể truy vấn COLUMNS trong INFORMATION_SCHEMA cơ sở dữ liệu để lấy tên cột và sử dụng GROUP_CONCAT để xây dựng danh sách cột cho câu lệnh.

SELECT CONCAT(
      'SELECT ',
      GROUP_CONCAT(COLUMN_NAME SEPARATOR ', '),
      ' FROM ', :db, '.', :table,
      ' WHERE ...'
      )
  FROM INFORMATION_SCHEMA.COLUMNS
  WHERE TABLE_SCHEMA=:db AND TABLE_NAME=:table

Thay ":db", ":table" và "..." bằng các giá trị thích hợp. Bạn thậm chí có thể biến nó thành một tuyên bố chuẩn bị sẵn để bạn có thể sử dụng nó cho bất kỳ bảng nào. Từ đó, PREPARE EXECUTE câu lệnh đã xây dựng.

Nếu bạn không bị giới hạn ở SQL để lập trình, nó sẽ bớt lộn xộn hơn. Trình điều khiển DB cho ngôn ngữ bạn chọn có thể cung cấp các phương thức lấy siêu dữ liệu. Việc triển khai thực tế sẽ tương tự như cách tiếp cận SQL thuần túy (lấy tên cột, câu lệnh lắp ráp, chuẩn bị, thực thi), nhưng không quá tệ, vì bạn đang sử dụng một thuật toán, thay vì ngôn ngữ khai báo.

Tôi rất muốn thấy tình huống mà điều này thực sự bắt buộc phải có ..



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL Fire Trigger cho cả Chèn và Cập nhật

  2. CHÈN ... TRÊN KHÓA DUPLICATE (không làm gì cả)

  3. Làm cách nào để Wordpress liên kết bài viết với các danh mục trong cơ sở dữ liệu của nó?

  4. Làm cách nào để sử dụng lại các giá trị auto_increment?

  5. Lỗi 508 - Trang web đạt đến giới hạn tài nguyên (php + mysql + jquery)