Простой поиск по тексту в Mysql можно реализовать с помощью оператора LIKE:
SELECT * FROM articles WHERE MATCH (title,body) AGAINST ('configured mysql');
# Простой поиск вхождений в тексте
Однако такой тип поиска терпит крушение, когда поисковый запрос немного усложняется:
SELECT * FROM articles WHERE title LIKE '%configure database%'
# Текст будет не найден, если в нем встречается, например, “configure your database”
Для более продвинутого поиска, предусмотрены специальные полнотекстовые индексы (или full-text search индексы). Mysql поддерживает полнотекстовые индексы для таблиц MyISAM. Поддержка Innodb добавлена с версии 5.6.4.
Для использования полнотекстового поиска, необходимо объявить его во время создания таблицы:
CREATE TABLE articles ( id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY, title VARCHAR(200), body TEXT, FULLTEXT (title,body) ) ENGINE=MyISAM;
# Innodb поддерживается с версии 5.6.4
Либо можно добавить индекс в существующую таблицу:
CREATE FULLTEXT INDEX title_body ON articles(title,body)
Для поиска достаточно использовать оператор MATCH:
SELECT * FROM articles WHERE MATCH (title,body) AGAINST ('configured mysql');
# Mysql будет искать соответствия сразу в двух колонках
Сегодня мы поговорим о том, как выбрать лучшие курсы Power BI в Украине, особенно для…
В 2023 году во всех крупнейших регионах конкуренция за вакансию выросла на 5–12%. Не исключением…
Unicorn Hunter/Talent Manager Лина Калиш создала бесплатный трекер поиска работы в Notion, систематизирующий все этапы…
Edtech-стартап Mate academy принял решение отправить своих работников в десятидневный отпуск – с 25 декабря…
Служба безопасности Украины задержала в Киеве 46-летнего программиста, который за деньги устанавливал шпионские программы и…
IT-специалист Джордан Катлер создал и выложил на Github подборку разнообразных ресурсов, которые помогут достичь уровня…