| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум WOweb > SQL > Поиск... |
| Автор: Nik Вторник, 18 Ноября 2003, 15:25 |
| Хотел сделать поиск по базе. Столкнулся с такой проблемой - мне надо сделать такой поиск, чтобы: 1. Игнорировал регистр строки; 2. Мог искать по словам, разделенные пробелом. Например, строка $s = "word1 word2 word3"; Количество слов не известно, но надо, что SELECT выдавал все записи, которые удовлетворяют хоть одному из слов... Была идею разбить строку на массив, но это на мой взгляд не удобно - много запросов получится тогда. Какие будут варианты? |
| Автор: asam Вторник, 18 Ноября 2003, 15:47 | ||||
| Если у тебя поля, по которым надо делать поиск, типа 'TEXT' , то всё просто - объявляешь поле как 'FULLTEXT' 1. В типе 'TEXT' при поиске регистр не учитывается 2. запрос :
возвратит все строки , соответствующие твоему запросу - при этом пробелы между словами будут рассматриватся как разделители. запрос
сделает тоже самое , но строки будут отсортированы по реавалантности |
| Автор: Nik Вторник, 18 Ноября 2003, 16:00 |
| asam, сенкс Пойду проверять... |
| Автор: Nik Среда, 03 Декабря 2003, 20:18 |
| Отлично, код работает! Но, можно ли немного изменить параметры поиска? Чтобы искать к примеру по части слова. Как это реализовать? |
| Автор: asam Четверг, 04 Декабря 2003, 9:10 | ||||
Если я правильно тебя понял , тогда есть - IN BOOLEAN MODE
где '$s' помимо собственно строки поиска может содержать
Всё это можно прочитать http://www.mysql.com/doc/ru/Fulltext_Search.html |
| Автор: Nik Четверг, 04 Декабря 2003, 18:13 | ||
Сделал такой запрос, но он выдает ошибку синтаксиса...
Где ошибка может быть? |