MySQL MATCH-ПРОТИВ множественного числа слов?
Я хотел бы добавить поиск на свой сайт. У меня есть база данных вызовов от видеоигры. У каждой задачи есть заголовок и описание, я бы хотел найти хотя бы описание, но оба, если это возможно. Теперь я настроил таблицу так, чтобы я мог использовать MATCH() AGAINST(), но у меня проблема со словами, которые могут быть как в единственном, так и во множественном числе.
Например, слово "ассистирует" встречается в нескольких задачах, но если пользователь введет "ассист", он ничего не получит. Есть ли способ, которым я могу добавить эту функциональность? Я перепробовал все, что мог придумать, но пока ничего не получалось.
Обновление: я только недавно узнал о МАТЧЕ ПРОТИВ, поэтому я не уверен, что "правильный" способ использовать его в моем случае. Как я уже сказал, у меня есть таблица с колонкой description
используя пример слова сверху, assists
, который появляется в таблице несколько раз, я бы использовал этот запрос:
SELECT * FROM challenges WHERE MATCH(description) AGAINST('assists')
Я только что выполнил это, и он возвратил 10 строк. Если я изменю это на assist
Я ничего не получаю.
2 ответа
Может быть, вы можете использовать функцию SOUNDEX() из MySQL.
SELECT
id,
title
FROM products AS p
WHERE p.title SOUNDS LIKE 'Shaw'
// This wil match 'Saw' etc.
Я думаю, что это также может быть применимо для вас и что он будет принимать с множественным числом
Возможно, я упускаю суть того, что вы пытаетесь сделать, но почему бы просто не сделать ЛАЙК, как это:
SELECT * FROM challenges WHERE description LIKE "%assist%";
Это будет соответствовать всему, что содержит "помощь", а также "помогает". Конечно, это также будет соответствовать "помощник" и "помощь", что может быть не то, что вы хотите...