Forum Webscript.Ru

Общие => Базы данных => Тема начата: slider2001 от 15 Февраля 2004, 18:00:02

Название: SQL запрос, поиск слов
Отправлено: slider2001 от 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 не получается.
Спасибо.
Название: SQL запрос, поиск слов
Отправлено: Меняздесьдавнонет от 15 Февраля 2004, 18:31:21
вообще-то, объединять тут нечего.
условие field=\'%word1%\' включает в себя field=\'%word%\'
Название: SQL запрос, поиск слов
Отправлено: slider2001 от 15 Февраля 2004, 19:50:09
Наверное наоборот, это понятно, только мне нужно, чтобы 2-й запрос отсортировался вначале по полному совпадению фразы (2-х слов подряд), а потом уже если эти эти слова находятся в разных местах (не подряд) или есть хотя бы одно слово.
Название: SQL запрос, поиск слов
Отправлено: Меняздесьдавнонет от 15 Февраля 2004, 20:49:18
нет, не наоборот.
если понятно, то зачем такой вопрос задавать?
за сортировку у нас отвечает оператор order by
Название: SQL запрос, поиск слов
Отправлено: slider2001 от 15 Февраля 2004, 22:29:52
Может быть field=\'%$word%\' включает свою составляющую $word1?
А как тогда отсортировать все это, чтобы вначале выводилось полное совпадение 2-х слов, а затем любое из слов, используя order by или еще что-нибудь?
Название: SQL запрос, поиск слов
Отправлено: Alexandr от 16 Февраля 2004, 08:45:34
2slider2001 поюзай полнотекстовый поиск
Название: SQL запрос, поиск слов
Отправлено: Меняздесьдавнонет от 16 Февраля 2004, 12:05:24
слово "Вася пупкин" включает в себя слово"пупкин"
Но тебе-то нужен ПОИСК!
а ПОИСК "Вася пупкин" НЕ НАЙДЕТ слово "пупкин"
А вот поиск по слову "пупкин" найдет и "пупкин" и "Вася пупкин"
поэтому поиск по $word не имеет смысла!
доступно?
Как можно настолько не представлять, что ты делаешь?

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