Можно ли искать всю таблицу базы данных (строки и столбцы), чтобы узнать конкретную строку.
У меня есть база данных с именем около 35 таблиц, мне нужно найти строку с именем «привет», и я не знаю, в какой таблице эта строка сохраняется. Возможно ли это?
Использование MySQL
Я администратор Linux, и я не знаком с базами данных, было бы очень полезно, если бы вы могли объяснить запрос также.
Ответы:
Подробнее: http://winashwin.wordpress.com/2012/08/28/mysql-search/
источник
Еще в июле 2012 года я написал этот пост
Запрос найти и заменить текст во всех таблицах и полях базы данных mysql
Он использует таблицу information_schema.columns для выбора каждого поля CHAR, VARCHAR и TEXT и выполнения текстовой замены. .
Пожалуйста, просмотрите мою старую ссылку и используйте ее парадигму для поиска.
Как пример, это создаст отдельный SELECT для каждого текстового столбца в каждой таблице
Создайте текстовый файл Giant SQL с ним. Затем выполните этот гигантский SQL-скрипт:
Выходные данные сообщают вам базу данных, таблицу и столбец, в которых отображаются данные.
Попробуйте!
РЕДАКТИРОВАТЬ:
СЛЕДУЕТ: добавить два обратных тика, показанных ниже для таблиц, в имени которых есть пробел.
источник
Используя другой подход, который не требует построения SQL-запросов, я разработал CRGREP как бесплатный инструмент командной строки с открытым исходным кодом, который будет выполнять поиск в базах данных (включая MySQL) и поддерживает оба простых типа «fred customer.name», ищущих «fred» в «имени». msgstr "столбец таблицы" customer "для более сложного сопоставления с образцом, такого как" fr? d * .author "для сопоставления с образцом по всем столбцам" author "во всех таблицах.
источник
Вы можете вернуть все столбцы из всех таблиц, которые совпадают с любыми значениями, которые вы ищете, сразу, построив ответ RolandoMySQLDBA и используя
PREPARE
иEXECUTE
для выполнения запроса .источник
Если вы можете использовать bash - вот скрипт: ему нужен пользовательский dbread с паролем dbread в базе данных.
Если кому-то нужно объяснение: http://infofreund.de/?p=1670
источник
Если вы администратор Linux, вы должны быть знакомы с командной строкой, так что этот будет удобен:
Измените
root
/root
на ваши учетные данные MySQL (или используйте~/.my.cnf
),db_name
на имя вашей базы данных иfoo
для вашего текста поиска. Параметр--skip-extended-insert
дляmysqldump
будет отображать каждый запрос в отдельных строках. Параметр--color=auto
дляgrep
выделит вашу строку и-w
будет соответствовать целому слову.источник
У вас есть доступ к phpMyAdmin? Он имеет функцию поиска для каждой базы данных.
или используйте сценарии на ваш выбор (смените dbname):
источник
Я сосредотачиваюсь на простом шаблонном решении для вашего вопроса, реализованном в plsql для базы данных Oracle , я надеюсь настроить его на MySql, будучи простым броском Google. все, что вам нужно, это исследовать информационную схему на MySql и заменить некоторые имена таблиц и столбцы.
В сценарии:
ALL_TAB_COLUMNS
таблица информационной схемы, содержащая все столбцы таблицы «VARCHAR2», «NVARCHAR2», «NCHAR», «CHAR» относится к типам столбцов строк в Oracle, их необходимо заменить эквивалентными именами типов MySql% hello% это ключевое слово поиска заменить его любой строкой.
Результатом будет несколько или несколько сценариев sql (в зависимости от типов столбцов таблиц), и их запуск приведет к вашему ответу.
Также важны производительность и потребление времени.
надеюсь это будет полезно
источник
Есть хорошая библиотека для чтения всех таблиц, ридона
источник
Используйте этот трюк с одной строкой кода
column_name: введите имя столбца, в котором вы будете искать.
table_name: введите все имя таблицы, в которой вы ищете.
источник
Если вы используете MySQL Workbench, щелкните правой кнопкой мыши схему базы данных и выберите «Поиск в таблице данных ...», затем заполните форму. Это будет искать всю базу данных. Когда (или если) результаты появятся, нажмите на стрелку, чтобы развернуть. Он покажет схему, таблицу, данные первичного ключа, имя столбца и фактические данные, которые соответствуют вашему поиску.
Совет: если ничего не появляется, попробуйте расширить поиск.
Пожалуйста , обратите внимание , что это действительно полезно только для поиска текста (
char
,varchar
аtext
) типы данных.источник
Если у вас установлен phpMyAdmin, используйте функцию «Поиск».
Выберите базу данных Убедитесь, что вы выбрали базу данных, а не таблицу, иначе вы получите совершенно другой диалог поиска.
источник