Master-X
Форум | Новости | Статьи
Главная » Форум » Программинг, Скрипты, Софт, Сервисы » 
Тема: Просьба к знатокам MySQL
цитата
27/01/14 в 01:53
 S_Flash
Подскажите запрос, который поможет во всех таблицах базы найти вхождение подстроки и вывести как результат список таблиц, в которых данное вхождение было?
Прокатит ли подобный поиск при наличии рута к мускулю по всем базам сервера?! icon_wink.gif Было бы намного продуктивнее!
цитата
27/01/14 в 08:39
 JM
в пхпадмине вероятно прокатит, но там несколько запросов он лепит...
т.ч. тут нужен минимум скрипт )
цитата
27/01/14 в 10:46
 Alexandur
Смотри в сторону information_schema

http://club.shelek.ru/viewart.php?id=319
цитата
27/01/14 в 12:34
 Stek
В данных искать ? Тогда только скрипт, что бы перебрать все базы и таблицы.
цитата
27/01/14 в 13:49
 S_Flash
gimcnuk: привёл конечно бомобовскую статью.. Хитрость там через information_schema и можно одним махом. Но там такой страшный скрипт\запрос, что я пока не решаюсь его запустить! Даже не пойму куда там вставить поисковую строку.
Хотя респект, ибо автор копает именно в ту сторону, куда надо мне.
цитата
27/01/14 в 15:26
 Alexandur
S_Flash писал:
gimcnuk: привёл конечно бомобовскую статью.. Хитрость там через information_schema и можно одним махом. Но там такой страшный скрипт\запрос, что я пока не решаюсь его запустить! Даже не пойму куда там вставить поисковую строку.
Хотя респект, ибо автор копает именно в ту сторону, куда надо мне.

Там не одним махом, а двумя.

Сначала делается выборка подходящих по типу полей во всех таблицах, чтобы искать в текстовых и чаровских. Она генерирует подходящий запрос, и уже он выдаёт нужное.

Строку ставить в LIKE "%test%" вместо теста.
цитата
27/01/14 в 15:49
 S_Flash
gimcnuk: там в конце есть "Автоматизация выполнения.", а потом "Вдогонку." (отредактированный окончательно)
Как я понял это полный код, который в себе совмещает и выборку и поиск одновременно. Но я такого кода на мускуле ещё в жизни не видел! Прям баш какой-то..
цитата
29/01/14 в 13:42
 Alexs
быстро найти все вхождения не куря базы можно так
1)делаем дамп базы
2) grep "подстрока" damp_database.sql

выявив нужные таблицы, можно спокойно написать запрос
цитата
29/01/14 в 17:26
 Stek
Вот только в дампе часть информации будет отображена совсем иначе, чем при выводе из базы.
цитата
30/01/14 в 16:36
 dm
что-то все примеры выдают
Empty set (0.00 sec)
на
mysql Ver 14.14 Distrib 5.1.71, for portbld-freebsd8.3 (amd64) using 5.2
mysql Ver 14.14 Distrib 5.5.34, for debian-linux-gnu (i686) using readline 6.2
больше не пробовал

а вживую нам пример покажут ?
цитата
30/01/14 в 18:56
 Stek
Примеры только создают процедуру. Ее далее надо еще и вызвать.
call find_overall('DB_NAME','search_string')

где вместо:
DB_NAME - имя базы данных
search_string - строка поиска

Пробовал только последний пример, он точно работает.
цитата
30/01/14 в 19:12
 S_Flash
О респект, Stek:!
Теперь вроде дошло.

А код в примере для генерации процедуры на баше?
цитата
30/01/14 в 20:55
 Stek
S_Flash писал:
А код в примере для генерации процедуры на баше?

Нет, это это все SQL. Х.з. правда как правильно называется, но в базах можно не только выборку по данным делать, но и часть логики приложений хранить. Например при удалении одной записи, пройтись по связанным, уменьшить счетчик и т.п.
цитата
30/01/14 в 21:40
 Mika
Хранимые процедуры это называется.
http://ru.wikipedia.org/wiki/%D0%A5%D1%80%D0%B0%D0%BD%D0%B8%D0%BC%D…1%80%D1%8B
цитата
30/01/14 в 22:12
 Stek
Mika: по твоей же ссылке
Цитата:
MySQL достаточно близко следует стандарту SQL:2003, её язык похож на SQL/PL.

Так что как этот язык (а не процедура) называется, даже wiki не знает smail101.gif


Эта страница в полной версии