Поиск по всем полям из каждой таблицы базы данных MySQL - PullRequest
283 голосов
/ 12 марта 2009

Я хочу найти во всех полях из всех таблиц базы данных MySQL заданную строку, возможно, используя синтаксис:

SELECT * FROM * WHERE * LIKE '%stuff%'

Можно ли сделать что-то подобное?

Ответы [ 25 ]

0 голосов
/ 01 августа 2016

Я использовал Union для объединения запросов. Не знаю, самый ли это эффективный способ, но он работает.

SELECT * FROM table1 WHERE name LIKE '%Bob%' Union
SELCET * FROM table2 WHERE name LIKE '%Bob%';
0 голосов
/ 05 июня 2018

Если вы используете phpMyAdmin, следуйте этому ответу , этот сайт этой ссылке .

0 голосов
/ 11 декабря 2017

Я не знаю, используется ли это только в последних версиях, но при щелчке правой кнопкой мыши на опции Tables на панели Navigator появляется опция Search Table Data. Это открывает окно поиска, где вы заполняете строку поиска и нажимаете кнопку поиска.

Вам нужно выбрать таблицу, в которой вы хотите искать, на левой панели. Но если вы удерживаете Shift и выбираете 10 таблиц одновременно, MySql может обработать это и вернуть результаты в считанные секунды.

Для тех, кто ищет лучшие варианты! :)

0 голосов
/ 25 октября 2017

Есть хорошая библиотека для чтения всех таблиц, ridona

$database = new ridona\Database('mysql:dbname=database_name;host=127.0.0.1', 'db_user','db_pass');

foreach ($database->tables()->by_entire() as $row) {

....do

}
0 голосов
/ 25 октября 2017

Экспорт всей базы данных и поиск в файле .sql.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...