Có thể có những trường hợp chúng ta muốn tìm xem có bao nhiêu bảng của một số cơ sở dữ liệu cụ thể mà một số cột [trường] xuất hiện. Hoặc bạn biết có trường cột nào đó tồn tại nhưng không nhớ nằm trong bảng nào của cơ sở dữ liệu, bạn sẽ làm gì?
Bên dưới truy vấn Mysql sẽ giúp bạn có được tất cả các bảng có cột được chỉ định trong một số cơ sở dữ liệu
1
SELECT table_name, column_name from information_schema.columns WHERE column_name LIKE '%column_name_to_search%';
Hãy nhớ rằng, không sử dụng % trước cột_tên_tìm_kiếm nếu bạn biết các ký tự bắt đầu của cột đó. Nó chậm lại, vì Mysql sẽ không sử dụng bất kỳ chỉ mục nào cho các trường được tìm kiếm bằng ký tự đại diện hàng đầu [%]
Bài viết này sẽ xem cách lấy tên cột từ một bảng bằng các phương pháp khác nhau. Ngoài ra, chúng ta sẽ xem cách lấy danh sách tên cột được phân tách bằng dấu phẩy
Mục lục. -
Hãy để chúng tôi bắt đầu bằng cách tạo dữ liệu mẫu được sử dụng trong các ví dụ. Chúng tôi sẽ tạo một bảng có tên là sale_details
CREATE TABLE sale_details [ id INT auto_increment, sale_person_name VARCHAR[255], no_products_sold INT, sales_department VARCHAR[255], PRIMARY KEY [id] ];
Đầu ra hành động. -
Để xem ảnh chụp nhanh của các cột trong bảng, hãy thực hiện
quảng cáo
SELECT * FROM sale_details;
đầu ra. -
Lấy tên cột từ một bảng bằng lược đồ THÔNG TIN
Lược đồ thông tin được sử dụng để lấy thông tin về máy chủ MySQL như tên bảng, tên cột tên cơ sở dữ liệu, loại dữ liệu, v.v. Hãy quan sát truy vấn bên dưới để biết cách sử dụng truy vấn này để lấy tên cột của bảng.
SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = Database[] AND TABLE_NAME = 'sale_details' ;
Thông báo đầu ra hành động. –
4 hàng được trả lại
đầu ra. -
Đầu ra trong image_3 hiển thị tên cột từ bảng sale_details. Hàm Database[] truy xuất lược đồ hiện tại từ máy chủ MySQL.
ĐỌC THÊM. MySQL. lấy tên cột và kiểu dữ liệu của bảng
Lấy tên cột từ bảng bằng SHOW COLUMNS
Một cách khác để lấy tên cột từ bảng là sử dụng SHOW COLUMNS. Quan sát truy vấn dưới đây cho giải pháp
Bài viết này sẽ xem xét việc lấy tất cả các bảng MySQL với các tên cột cụ thể từ lược đồ cơ sở dữ liệu. Chúng tôi sẽ minh họa khái niệm bằng các ví dụ khác nhau
Hãy để chúng tôi bắt đầu bằng cách chuẩn bị dữ liệu mẫu. Chúng tôi sẽ tạo ba bảng, sale_details, sale_person_designation và sale_city
#create the table sale_details CREATE TABLE sale_details [ id INT , sale_person_id VARCHAR[255] , sale_person_name VARCHAR[255], no_products_sold INT, sales_department VARCHAR[255] ]; #create the table sale_person_designation CREATE TABLE sale_person_designation [ id INT , sale_person_name VARCHAR[255], designation VARCHAR[255] ]; #create the table sale_city CREATE TABLE sale_city [ sale_person_id VARCHAR[255], sale_person_name VARCHAR[255] ];
Đầu ra hành động. -
Hình ảnh trên cho thấy rằng cả ba bảng đã được tạo thành công. Bây giờ chúng ta hãy xem xét các ví dụ
Ví dụ1. Lấy tên của tất cả các bảng có cột, sale_person_id hoặc sale_person_name hoặc cả hai.
quảng cáo
Quan sát truy vấn bên dưới để tìm giải pháp theo yêu cầu của ví dụ trên
SELECT DISTINCT TABLE_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE COLUMN_NAME IN ['sale_person_id' , 'sale_person_name'] AND TABLE_SCHEMA = database[];
đầu ra. -
Giải trình. -
Truy vấn trên đang trả về tên bảng DISTINCT từ INFORMATION_SCHEMA, chứa các cột có tên sale_person_id và/hoặc sale_person_name. The results are filtered by schema to get the tables only from your schema using database[] function.
Ví dụ2. Lấy tên bảng và tên cột tương ứng có cột bắt đầu bằng “sales_p”.
Quan sát truy vấn bên dưới để tìm giải pháp theo yêu cầu của ví dụ trên
SELECT TABLE_NAME, COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE COLUMN_NAME LIKE 'sale_p%';
đầu ra. -
Giải trình. -
Truy vấn trên đang trả về TABLE_NAME và COLUMN_NAME từ INFORMATION_SCHEMA. CỘT nơi tên cột bắt đầu từ “sale_p” sử dụng ký tự đại diện “%” .
Ví dụ3. Lấy tên của tất cả các bảng có cột sale_person_name.
Quan sát truy vấn bên dưới để tìm giải pháp theo yêu cầu của ví dụ trên
________số 8_______đầu ra. -
Giải trình. -
Truy vấn trên đang trả về TABLE_NAME từ INFORMATION_SCHEMA. COLUMNS trong đó column_name là sale_person_name bằng cách sử dụng toán tử EQUAL trong mệnh đề WHERE.
GHI CHÚ. rằng sẽ không có thay đổi nào trong các truy vấn giải pháp ngay cả khi các bảng chứa dữ liệu
ĐỌC THÊM
- MySQL lấy dữ liệu theo độ dài chuỗi
- Bản cập nhật Mysql đặt nhiều hàng
- Cột cập nhật Mysql có giá trị từ một bảng khác
- Cập nhật MySQL với Tham gia bên trong
- Chèn MySQL với Tham gia
- mysql. Chèn vào một vòng lặp
Chúng tôi hy vọng bài viết này đã giúp bạn biết tên của các bảng MySQL có các cột cụ thể. Chúc may mắn