- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Что делать, если ваша email-рассылка попала в спам
10 распространенных причин и решений
Екатерина Ткаченко
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
добрый день. есть вопрос. создал полнотекстный поиск по полю в таблице. а как сделать чтоб искало сразу в нескольких полях? если стоит в одном поле, то ищет, если я добавил к полнотексту ещё одно поле, то выдает ошибку.
Заранее спасибо!
Так пробовали добавлять?
update: исправил запрос...
вот так и создавал, только в index_name указал такоеже имя как и в одном из полей col1
тоесть так
CREATE FULLTEXT INDEX col1 ON table_name(col1, col2, col3);
может это не правильно?
а что ещё там с апдейтом надо сделать?
а что ещё там с апдейтом надо сделать?
то я добавил FULLTEXT в запрос, а то первый раз когда дописал, пропустил его.
Dreammaker, так а в чем может быть прикол? может мне исправить название полученого фултекста, ато оно совпадает с названием одного из полей
$text = $_GET('text')
$sql = "SELECT COUNT(*) FROM table WHERE lower(col1) LIKE lower('%$text%') OR lower(col2) LIKE lower('%$text%') OR lower(col3) LIKE lower('%$text%')";
Может всёже так будет лучше?
KosoyRoman, не знаю ,мне посоветовали сделать полнотекстный поиск, в базе у меня 3 млн записей. очень тормозила:(
verhmax,
только что у себя попробовал
Ищет, ошибок не выдаёт.. Может у вас одно из полей имеет название зарезервированного слова?
Dreammaker, действительно, работает, но почему так долго? из 1,5 млн записей найти слово заняло 12 сек :(
LIMIT задавали ? у меня это по идее общий такой себе вид..
Может всёже так будет лучше?
С таким вариантом, думаю, результата вообще можно не дождаться:)
LIMIT задавали ?
LIMIT не всегда поможет, т.к. в некоторых случаях он работает в последнюю очередь, т.е. сначала выбираются все совпадения (основное время выполнения), а потом уж делается срез в соответствии с LIMIT.
Надо анализировать сам запрос в целом - может будет проще сделать покрывающий индекс (если он еще не такой), когда все поля таблицы, участвующие в запросе, проиндексированы. Такие вопросы тяжело решать, когда они вырваны из контекста.