[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Создание поиска по сайту
Sailor
Привет всем!!!
Такой вопрос как осуществить поиск на сайте используя MySql если имеется несколько таблиц???



Спустя 2 минуты, 24 секунды (24.04.2011 - 21:56) inpost написал(а):
Sailor
либо несколько отдельных запросов с LIKE %% , либо в FROM table1 table2 , а в WHERE table1.cell LIKE %% OR table2.cell LIKE %%

Спустя 10 минут, 31 секунда (24.04.2011 - 22:06) Ser18 написал(а):
А лучше не LIKE, а MATCH

Спустя 3 минуты, 24 секунды (24.04.2011 - 22:09) sharki написал(а):
Ser18
MATCH применяется как мне помнится для индексированных, полнотекстовых, скорость повыше чем у LIKE

Спустя 4 минуты, 4 секунды (24.04.2011 - 22:14) Sailor написал(а):
т.е. синтаксис такой будет: SELECT * FROM table1,table2 WHERE table1.cell MATCH(name) OR table2.cell MATCH (name_2)

Спустя 5 минут, 33 секунды (24.04.2011 - 22:19) Sailor написал(а):
А как определить поля в таблицы для выводы если допустим искомый текст нашолся во второй таблице
p.s. в таблицах имена полей разные.

Спустя 13 минут, 12 секунд (24.04.2011 - 22:32) Ser18 написал(а):
Цитата (sharki @ 24.04.2011 - 19:09)
Ser18
MATCH применяется как мне помнится для индексированных, полнотекстовых, скорость повыше чем у LIKE

Да
И поиск лучше Особенно если искать не одно слово, а фразу

Спустя 37 минут, 46 секунд (24.04.2011 - 23:10) Dr.Mars написал(а):
А лучше sphinx

Спустя 1 час, 31 минута, 52 секунды (25.04.2011 - 00:42) SAilor написал(а):
для этого запрося
SELECT * FROM table1,table2 WHERE table1.cell MATCH(name) OR table2.cell MATCH (name_2)
я немогу определится с полям для вывода в каждой таблице они разные sad.gif

Спустя 2 минуты, 29 секунд (25.04.2011 - 00:44) inpost написал(а):
SAilor
Их и указывай

Спустя 4 минуты, 24 секунды (25.04.2011 - 00:49) Guest написал(а):
а как определить в какой таблице нашелся поисковое слово
тоесть если допустим у меня в первой таблице нашелся искомое слово
то тогда имя поля будет допустим name
а если во второй таблице то поле наз. title
и как определить как их вывести на экран?

Спустя 18 минут (25.04.2011 - 01:07) Trianon написал(а):
inpost
Цитата
либо в FROM table1 table2

это как?

Спустя 2 минуты, 22 секунды (25.04.2011 - 01:09) Guest написал(а):
Что как ???

Спустя 14 минут, 51 секунда (25.04.2011 - 01:24) inpost написал(а):
Trianon
"Что как" - был не мой коммент =)
Ну как, SELECT table1.*,table2.* FROM table1,table2 WHERE ...
Разве так не получится? Через запятую нельзя указывать разные таблицы? Нужно чтоли отдельные запросы?

Спустя 6 часов, 15 минут, 14 секунд (25.04.2011 - 07:39) Trianon написал(а):
запятая - операция (CROSS JOIN) декартового произведения таблиц.
Оно тут надо?
Учитывая, что в 99% случаях оно не надобно нигде?

А в Вашем фрагменте даже запятой не было.
FROM table1 table2 означает "из таблицы table1, обозначенной псевдонимом table2"

Спустя 25 минут, 50 секунд (25.04.2011 - 08:05) inpost написал(а):
Trianon
Запятую пропустил, не знал, что такое бывает.
Так что в данном случае было бы эфективнее, для выборки из нескольких таблиц? Отдельные запросы вообще?
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.