#1 11.01.06 09:57
[Mysql] Как сделать запрос на поиск по всем таблицам сразу?
вообщем так: есть в бд(BD) несколько таблиц (table1,table2),нужно по ВСЕМ таблицам сразу осуществить поиск(find_text). как запрос будет выглядеть?
Код::
SELECT * FROM `BD`.`table1` WHERE `table_filed1` ILIKE '%find_text%'OR `table_filed2` ILIKE '%find_text%'
- запрос на поиск только по одной таблице,а можно сразу по всей БД произвести
Исправлено iDrum (11.01.06 09:59)
Offline
#2 11.01.06 14:43
Re: [Mysql] Как сделать запрос на поиск по всем таблицам сразу?
чет типа того:
select t1.*, t2.* from table1 t1, table2 t2
WHERE `t1.table_filed1` ILIKE '%find_text%' OR `t1.table_filed2` ILIKE '%find_text%' OR `t2.table_filed1` ILIKE '%find_text%' OR `t2.table_filed2` ILIKE '%find_text%'
Offline
#4 11.01.06 15:45
Re: [Mysql] Как сделать запрос на поиск по всем таблицам сразу?
хз, в оракле так работает. Тут не знаю, думаю не обязательно.
Offline
#8 12.01.06 08:51
Re: [Mysql] Как сделать запрос на поиск по всем таблицам сразу?
Я только одно могу сказать. Если возникает необходимость вот в таких вот запросах, то это верный признак того, что сами данные криво организованы. Может имеет смысл модель данных переделать?
Добавлено 12.01.06 09:00:
Ну уж если совсем не хочется переделывать структуру данных, то:
Если нужные таблицы имеют способ хранения MyISAM, то их можно объединить в одну "виртуальную" таблицу. В общем в документации по MySQL читайте про "The MERGE Storage Engine".
Но по сути своей этот тип хранения аналогичен UNION (читаем в мануале про "UNION Syntax").
Исправлено Il2 (12.01.06 09:01)
Offline
#10 12.01.06 16:27
#11 14.01.06 03:51
#12 16.01.06 09:39
Re: [Mysql] Как сделать запрос на поиск по всем таблицам сразу?
Maq написал(а):
может стоит создать таблицу с перечислением всех таблиц в которых будет осуществляться поиск?
да что то слышал про виртуальную (или по другому как) таблицу,которая в себе обьеденяет все другие таблицы..но как?
Offline
#13 16.01.06 11:06
#14 16.01.06 11:15
#15 16.01.06 12:49
#16 24.01.06 01:04
Re: [Mysql] Как сделать запрос на поиск по всем таблицам сразу?
Имхо, если возникает такая задача - значит пора вернуться к проектированию базы. Что ты собираешься найти, если не знаешь что (точнее где) искать?
Хотя в сормальных современных СУДБ реализован такой функционал, но само его наличие не исключает важность проектирования.
Offline
#17 24.01.06 01:07
#18 26.01.06 12:15
Re: [Mysql] Как сделать запрос на поиск по всем таблицам сразу?
iDrum написал(а):
ну потом нада будет через цикл прогонять...имхо проще все таблицы обьеденить в одну и с ней уже работать
а как ты потом поймешь из какой таблицы вытащил данные? Вернее компу как объяснишь? ))
возможно это конечно не нужно в твоем случае, но ... если давать обратный ссыль на эту инфу, то мне кажется что без этого никак .. хотя в твоем случае может бать так что в каждой строке базы находится ссылка в соседней ячейке на данный текст ... ))
Offline

