Đây là một điều hơi phức tạp để làm. Và bạn thực sự không thể làm điều đó trong một bước. Tôi sẽ cung cấp cho bạn một cái gì đó để bắt đầu và bạn sẽ phải thực hiện nó từ đó:
select CONCAT("SELECT * FROM ", TABLE_NAME, " WHERE user_id=1;") FROM INFORMATION_SCHEMA.COLUMNS WHERE COLUMN_NAME="user_id";
Bây giờ điều này sẽ tạo ra đầu ra như thế này:
+--------------------------------------------------------------------+
| CONCAT("SELECT * FROM ", TABLE_NAME, " WHERE user_id=1;") |
+--------------------------------------------------------------------+
| SELECT * FROM table0 WHERE user_id=1; |
| SELECT * FROM table1 WHERE user_id=1; |
Bây giờ, bạn muốn quay lại và thực hiện tất cả các lệnh đó ... hãy làm như thế này:
select CONCAT("SELECT * FROM ", TABLE_NAME, " WHERE user_id=1;") FROM INFORMATION_SCHEMA.COLUMNS WHERE COLUMN_NAME="user_id" INTO OUTFILE "some_file_path_and_name";
Điều đó sẽ cung cấp cho bạn một tệp văn bản chứa đầy đủ tất cả các lệnh mà bạn đang tìm kiếm.
Cập nhật ---
Tôi đã bỏ lỡ "Đối với bất kỳ bit nào của cột .."
select CONCAT("SELECT * FROM ", TABLE_NAME, " WHERE ", COLUMN_NAME, "='WHATEVER';") FROM INFORMATION_SCHEMA.COLUMNS WHERE COLLATION_NAME IS NOT NULL INTO OUTFILE 'somepath';
Ở đây, chúng tôi đang sử dụng thực tế là bạn đã nói rằng bạn đang tìm kiếm một chuỗi và tất cả các trường loại chuỗi đều có collation_name. Thay thế WHATEVER bằng những gì bạn đang tìm kiếm.