Câu hỏi Liệt kê tất cả các bảng có chứa tên cột đã cho


Làm cách nào để tôi liệt kê tất cả các bảng có chứa tên cột đã cho? Tôi đang sử dụng phiên bản Mysql 4.1.13-nt-log. Tôi biết các phiên bản ít hơn 5 không có một DB information_scheme.


12
2018-02-08 21:03


gốc


một câu hỏi ngược lại: tại sao bạn cần điều đó? :) - Bozho
Nếu bạn nghiêm túc muốn làm điều đó, bạn có thể xuất kết quả cho SHOW TABLES và SHOW COLUMNS FROM vào một tệp văn bản trong dòng lệnh, sau đó sử dụng Perl và grep để tìm kiếm - Yada


Các câu trả lời:


Tìm tất cả các bảng và cột có tên cột giống cụm từ tìm kiếm:

SELECT DISTINCT TABLE_NAME, COLUMN_NAME 
FROM INFORMATION_SCHEMA.COLUMNS
WHERE COLUMN_NAME LIKE '%partial_column_name%'
    AND TABLE_SCHEMA='YourDatabase';

29
2018-05-27 08:09



OP khá cụ thể về việc không sử dụng information_schema, điều này không trả lời câu hỏi. - buc
+ 1 vì đó là những gì tôi đang tìm kiếm khi tìm kiếm. - PeteGO
1 cho cùng một lý do - giải quyết vấn đề cụ thể của tôi và giúp tôi tiết kiệm thời gian. - Redboots


Dễ dàng hơn nhiều

SELECT DISTINCT TABLE_NAME FROM your_schema.columns WHERE column_name = 'your_column_name';

1
2017-10-29 05:04





thử cái này:

mysqldump -u root -p –all-databases –single-transaction > all.sql

và sau đó thực hiện tìm kiếm theo cách cũ trong một trình soạn thảo văn bản với tìm


cũng tìm thấy điều này ... có vẻ đầy hứa hẹn, nhưng tôi không chắc bạn tham vọng thế nào

http://mike.kruckenberg.com/presentations/Creating_INFORMATION_SCHEMA.pdf


0
2018-03-07 15:45



Một giải pháp đơn giản tốt đẹp, nhưng tôi sẽ đề nghị sử dụng tùy chọn không có dữ liệu, vì tất cả những gì bạn quan tâm là lược đồ ... - Phil DD


select table_name,column_name,data_type,data_length 
from user_tab_columns 
where column_name LIKE 'WHATEVER_U_WANT'
;

-2
2017-10-30 04:56