powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Поиск по всей базе данных
28 сообщений из 28, показаны все 2 страниц
Поиск по всей базе данных
    #32639875
Adonis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день.. надо осуществить поиск (подстроки) по всей базе данных сразу... то есть а эдите пишем строчку и жмем СТАРТ... и надо пробежаться по все йбазе со всеми таблицами и полями чтобы найти заданную подстрочку.. Ничего в голову помимо замены в IBQUERY кода SQL с SELECT * from ПЕРваяТаблица where Поле1 Like %бла% or Поле2 Like %бла% or и так далее.. потом по второй таблице так же...но у меня есть таблицы с 30 таблицами.. и писать эти OR честно говоря в лом... разве не существует более легкий способ... Использую такой способ поиска потому что FIND какой нить не отлавливает намана подстроку (если она не в начале слова входящего находится). помогите пожалуйста!
...
Рейтинг: 0 / 0
Поиск по всей базе данных
    #32639946
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AdonisДобрый день.. надо осуществить поиск (подстроки) по всей базе данных сразу... то есть а эдите пишем строчку и жмем СТАРТ... и надо пробежаться по все йбазе со всеми таблицами и полями чтобы найти заданную подстрочку.. Ничего в голову помимо замены в IBQUERY кода SQL с SELECT * from ПЕРваяТаблица where Поле1 Like %бла% or Поле2 Like %бла% or и так далее.. потом по второй таблице так же...но у меня есть таблицы с 30 таблицами.. и писать эти OR честно говоря в лом... разве не существует более легкий способ...
Нет.
Что за задача такая странная?
...
Рейтинг: 0 / 0
Поиск по всей базе данных
    #32639979
Adonis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
а почему задача странная? чем она странна.. самый обычный поиск по базе... есть несколько таблиц..вот я и ищу в них нужную строку... я ние очень понимаю в чем странность задачи...
...
Рейтинг: 0 / 0
Поиск по всей базе данных
    #32640011
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Adonisа почему задача странная? чем она странна.. самый обычный поиск по базе... есть несколько таблиц..вот я и ищу в них нужную строку... я ние очень понимаю в чем странность задачи...АНАЛОгичная ситуация.
Приходишь в библиотеку и говоришь:
   - Дайте мне кижку, в которой есть слово БУБЛИК.
   - А автор какой?
   - Пофиг автор.
   - Называется как?
   - Пофиг как называется. Главное чтоб БУБЛИК был!
Ы?
...
Рейтинг: 0 / 0
Поиск по всей базе данных
    #32640027
Adonis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Извени... возможна же ситуация что надо найти людей или организации или людей по номеру телефона например... я могу привести примеры прог с поиском по всей базе.. кста..например... та же летучая мышь... поиск со свойством ANYWHERE...тот же поиск по всей базе.. насколько я понимаю..
...
Рейтинг: 0 / 0
Поиск по всей базе данных
    #32640034
Adonis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Хотя... ты можешь сказать, что А ДЛЯ ЧЕГО ТОГДА ФИЛЬТРАЦИЯ... и возможно будешь прав... но есть же поиск ... мнекажется поиск идет по всем записям в базе..разве я не прав?! Иль поиск только по наименованиюб нужно осуществлять?
...
Рейтинг: 0 / 0
Поиск по всей базе данных
    #32640041
Adonis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
МимопроходящийАНАЛОгичная ситуация.

Юмор глупый... и не к месту...
...
Рейтинг: 0 / 0
Поиск по всей базе данных
    #32640056
OJIEI'
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Adonis...мнекажется поиск идет по всем записям в базе..разве я не прав?! Иль поиск только по наименованиюб нужно осуществлять?

ты что-же будешь искать %бла% и в полях с типом INT, TIMESTAMP, etc..?
...
Рейтинг: 0 / 0
Поиск по всей базе данных
    #32640095
Adonis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А вот это замечаний верное... не подумал...
...
Рейтинг: 0 / 0
Поиск по всей базе данных
    #32640106
Фотография Johnmen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>Adonis

Если ты не в состояние понять достаточно простых анологий (одну из которых привёл Мим), то всё очень грустно.................

Попробую и я :)
"Приходишь в библиотеку научно-технической литературы и просишь все произведения, в котрых встречается [горел закат]"

Ку ?

...
Рейтинг: 0 / 0
Поиск по всей базе данных
    #32640114
Adonis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ну собрались тут все крутые... гордитесь блин дальше своими знаниями... человек просто спросил как поступить а вы его в грязь...
...
Рейтинг: 0 / 0
Поиск по всей базе данных
    #32640134
neko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Adonisну собрались тут все крутые... гордитесь блин дальше своими знаниями... человек просто спросил как поступить а вы его в грязь...

поступить нужно просто
сесть и глубоко задуматься о личных качествах проектировщика базы
...
Рейтинг: 0 / 0
Поиск по всей базе данных
    #32640154
Adonis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот уж не надо тут о качествах речь заводить... на эту тему можно и лично пообсчаться... я сюда написал с просьбой о помощи..так сказать посоветоваться...а вы все тут такие-растакие хорошие начали показывать какой я плохой и глупый..
...
Рейтинг: 0 / 0
Поиск по всей базе данных
    #32640157
mko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
mko
Гость
полно-те "обижатся", просто, действительно, вопрос противоречит логике баз данных. Опиши подробней саму предметную область.
Примеры с библиотекой хорошие, вот те еще один, но ближе к контексту.

Зачем искать, к примеру, производителей с подстрокой %бла% в таблице городов? или искать продукцию с той же подстрокой в таблице клиентов ? другими словами реализация, сформулированой тобой, задачи будет выполнять львиную долю ненужных переборов.

для реализации поиска необходимо спроектировать его структуру, чтоб пользователь мог выбрать что он ищет (тоесть определится с предметом поиска должен в первую очередь он (СУБД это не Яндех или Google)), а ты в свою очередь обрабатываешь его действия и проводишь поиск по ,соответствующим c его запросом, полям, и т.д.
...
Рейтинг: 0 / 0
Поиск по всей базе данных
    #32640160
StarWind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
внесу и я свои три копейки...
На мимопроходящего обижаться не стоит, а стоит задумываться над его словами и пытаться срастить со своей ситуацией. Потому как пример он приводит показывающий всю абсурдность поставленного вопроса(в данном случае, в средне-статистическом случае). И правильно говорят, что нужно задуматься о структуре БД, дабы родить что-то нормальное...
А если очень нужно сделать именно так как написано... То делаем абсолютно так как ты и пишешь, только разве что запрос можно такой сформировать автоматически, основываясь на инфо в системных таблицах. Там же и отфильтровать поля по типам.
...
Рейтинг: 0 / 0
Поиск по всей базе данных
    #32640343
vis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ваще-то это извращение В ПРИНЦИПЕ.

для поиска по всей информации лучше создать файл или таблицу,
содержащие индексированную информацию с указанием
"откуда взята"

и периодически запускать скрипт, обновляющий индекс
...
Рейтинг: 0 / 0
Поиск по всей базе данных
    #32640399
Dik76
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Полностью согласен с vis. Отдельная табличка это выход. А заполнять ее можно и с помощью тригеров.
...
Рейтинг: 0 / 0
Поиск по всей базе данных
    #32640969
Фотография JibSkeart
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
с другой стороны на MSSQL такое реализовать можно :))
но с другой стороны есть ли смысл подобного ?
иногда конечно есть если делаешь что то вдухе форума :)


 ш
(';')
(V),(V),,
Код: plaintext
 JS 
...
Рейтинг: 0 / 0
Поиск по всей базе данных
    #32641002
OJIEI'
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Адонис, наверное, забыл на этот форум.., пришел, понимаешь, совет получить, а тут брантся
...
Рейтинг: 0 / 0
Поиск по всей базе данных
    #32641024
Лентяй
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AdonisДобрый день.. надо осуществить поиск (подстроки) по всей базе данных сразу... то есть а эдите пишем строчку и жмем СТАРТ... и надо пробежаться по все йбазе со всеми таблицами и полями чтобы найти заданную подстрочку.. Ничего в голову помимо замены в IBQUERY кода SQL с SELECT * from ПЕРваяТаблица where Поле1 Like %бла% or Поле2 Like %бла% or и так далее.. потом по второй таблице так же...но у меня есть таблицы с 30 таблицами.. и писать эти OR честно говоря в лом... разве не существует более легкий способ... Использую такой способ поиска потому что FIND какой нить не отлавливает намана подстроку (если она не в начале слова входящего находится). помогите пожалуйста!
Интересные тут вопросы задаются, вот чего такой запрос вернуть должен если данные нашлись в 30 таблицах и у всех структура разная?
...
Рейтинг: 0 / 0
Поиск по всей базе данных
    #32641504
Фотография mv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну, пошел флуд...
-------------------
1. Просто так - нельзя.

2. Вариант: создаешь хранимую процедуру, которая возвращает набор записей с полями:
- Имя_таблицы,
- Id_Записи,
- Имя_поля.

В процедуре делаешь специальный запрос, и получаешь список таблиц твоей базы. В цикле перебираешь их. Для каждой таблицы делаешь еше более специальный запрос, в котором формируешь список полей этой таблицы. Во внутреннем цикле для каждого поля формируешь ну прямо очень специальный запрос, возвращающий набор записей, (структуру см. выше).

Не забудь Suspend поставить. :)
...
Рейтинг: 0 / 0
Поиск по всей базе данных
    #32641788
Matt Juntunen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Еще более простой (тупой :)) вариант:
Делаешь VIEW в котором через CAST объединяешь все текстовые поля, в которых искать надо..
И ищешь запросом по этому VIEW что надо..
...
Рейтинг: 0 / 0
Поиск по всей базе данных
    #32643577
Adonis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо тем, кто хоть хоть выид сделал что помогает... всем остальным - В САД!
...
Рейтинг: 0 / 0
Поиск по всей базе данных
    #32644245
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AdonisСпасибо тем, кто хоть хоть выид сделал что помогает... всем остальным - В САД!Не кипятись
...
Рейтинг: 0 / 0
Поиск по всей базе данных
    #32644257
Фотография JibSkeart
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AdonisСпасибо тем, кто хоть хоть выид сделал что помогает... всем остальным - В САД!

Блин а можно я сегодня не пойду ???
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Поиск по всей базе данных
    #37852676
MIchPl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
http://club.shelek.ru/viewart.php?id=319 может поздновато и решение для mysql, но на идею может натолкнуть.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Поиск по всей базе данных
    #38563743
shura223
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну если человек в 12 году решил ответить на вопрос из 2004, то в 2014ом я тоже могу так сделать, ИМХО.
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
CREATE PROC SearchAllTables (@SearchStr nvarchar(100))
AS
BEGIN
	CREATE TABLE #Results (ColumnName nvarchar(370), ColumnValue nvarchar(3630))

	SET NOCOUNT ON

	DECLARE @TableName nvarchar(256), @ColumnName nvarchar(128), @SearchStr2 nvarchar(110)
	SET  @TableName = ''
	SET @SearchStr2 = QUOTENAME('%' + @SearchStr + '%','''')

	WHILE @TableName IS NOT NULL
	BEGIN
		SET @ColumnName = ''
		SET @TableName = 
		(
			SELECT MIN(QUOTENAME(TABLE_SCHEMA) + '.' + QUOTENAME(TABLE_NAME))
			FROM 	INFORMATION_SCHEMA.TABLES
			WHERE 		TABLE_TYPE = 'BASE TABLE'
				AND	QUOTENAME(TABLE_SCHEMA) + '.' + QUOTENAME(TABLE_NAME) > @TableName
				AND	OBJECTPROPERTY(
						OBJECT_ID(
							QUOTENAME(TABLE_SCHEMA) + '.' + QUOTENAME(TABLE_NAME)
							 ), 'IsMSShipped'
						       ) = 0
		)

		WHILE (@TableName IS NOT NULL) AND (@ColumnName IS NOT NULL)
		BEGIN
			SET @ColumnName =
			(
				SELECT MIN(QUOTENAME(COLUMN_NAME))
				FROM 	INFORMATION_SCHEMA.COLUMNS
				WHERE 		TABLE_SCHEMA	= PARSENAME(@TableName, 2)
					AND	TABLE_NAME	= PARSENAME(@TableName, 1)
					AND	DATA_TYPE IN ('char', 'varchar', 'nchar', 'nvarchar')
					AND	QUOTENAME(COLUMN_NAME) > @ColumnName
			)
	
			IF @ColumnName IS NOT NULL
			BEGIN
				INSERT INTO #Results
				EXEC
				(
					'SELECT ''' + @TableName + '.' + @ColumnName + ''', LEFT(' + @ColumnName + ', 3630) 
					FROM ' + @TableName + ' (NOLOCK) ' +
					' WHERE ' + @ColumnName + ' LIKE ' + @SearchStr2
				)
			END
		END	
	END

	SELECT ColumnName, ColumnValue FROM #Results
END



Выполнять:
EXEC SearchAllTables 'Строка'
GO
В 2008 MSSQL работает нормально.
...
Рейтинг: 0 / 0
Поиск по всей базе данных
    #38563745
shura223
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
shura223, тааккк.... Не заметил, что ветка по ФБ и ИБ, так как гуглил МС. Так что сори, но выше указан вариант для MSSQL.
...
Рейтинг: 0 / 0
28 сообщений из 28, показаны все 2 страниц
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Поиск по всей базе данных
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]