Автор Тема: SQL запрос, поиск слов  (Прочитано 3562 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн slider2001

  • Завсегдатай
  • Новичок
  • *
  • Сообщений: 43
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
SQL запрос, поиск слов
« : 15 Февраля 2004, 18:00:02 »
Подскажите, пожалуйста, как составить sql запрос.
Нужно, чтобы по 2-м словам сначала выводилось поплное совпадение (AND), а потом (OR).
То есть нужно объединить 2 запроса, отсортировав по первому запросу и по полю field.
SELECT * FROM db WHERE field=\'%word%\'
SELECT * FROM db WHERE field=\'%word1%\' or field=\'%word2%\'
где word=word1+word2 через пробел.
UNION не получается.
Спасибо.

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
SQL запрос, поиск слов
« Ответ #1 : 15 Февраля 2004, 18:31:21 »
вообще-то, объединять тут нечего.
условие field=\'%word1%\' включает в себя field=\'%word%\'

Оффлайн slider2001

  • Завсегдатай
  • Новичок
  • *
  • Сообщений: 43
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
SQL запрос, поиск слов
« Ответ #2 : 15 Февраля 2004, 19:50:09 »
Наверное наоборот, это понятно, только мне нужно, чтобы 2-й запрос отсортировался вначале по полному совпадению фразы (2-х слов подряд), а потом уже если эти эти слова находятся в разных местах (не подряд) или есть хотя бы одно слово.

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
SQL запрос, поиск слов
« Ответ #3 : 15 Февраля 2004, 20:49:18 »
нет, не наоборот.
если понятно, то зачем такой вопрос задавать?
за сортировку у нас отвечает оператор order by

Оффлайн slider2001

  • Завсегдатай
  • Новичок
  • *
  • Сообщений: 43
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
SQL запрос, поиск слов
« Ответ #4 : 15 Февраля 2004, 22:29:52 »
Может быть field=\'%$word%\' включает свою составляющую $word1?
А как тогда отсортировать все это, чтобы вначале выводилось полное совпадение 2-х слов, а затем любое из слов, используя order by или еще что-нибудь?

Оффлайн Alexandr

  • Фанат форума
  • Ветеран
  • *****
  • Сообщений: 865
  • +0/-0
  • 0
    • Просмотр профиля
    • http://gtp.hobi.ru
SQL запрос, поиск слов
« Ответ #5 : 16 Февраля 2004, 08:45:34 »
2slider2001 поюзай полнотекстовый поиск
Kiss my CSS
Pусские gtp gp3 ( midi + tab ) -   - Все для Авто.

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
SQL запрос, поиск слов
« Ответ #6 : 16 Февраля 2004, 12:05:24 »
слово "Вася пупкин" включает в себя слово"пупкин"
Но тебе-то нужен ПОИСК!
а ПОИСК "Вася пупкин" НЕ НАЙДЕТ слово "пупкин"
А вот поиск по слову "пупкин" найдет и "пупкин" и "Вася пупкин"
поэтому поиск по $word не имеет смысла!
доступно?
Как можно настолько не представлять, что ты делаешь?

в запросе попробуй
order by if(field=\'%word%\',1,0),field

 

Sitemap 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