Задавайте вопросы, мы ответим
Вы не зашли.
Доброго времени суток. Даже и не знаю с чего начать
Задача:
Есть массив из трёх элементов в PHP. Требуется произвести поиск совпадающих слов в таблице.
[1] [2] [3] – оставшиеся три слова
Необходимо получить данные из столбца data в переменные, где фраза ответа
из таблицы будет содержать наибольшее кол-во слов:
Ищет вхождение [3]
В полученных результатах ищет вхождение [2]
В полученных ищет вхождение [1]
Если при поиске по слову [3] ничего не было найдено, то:
Ищет вхождение [2]
В полученных ищет вхождение [1]
Если при поиске по слову [2], и ранее [3], ничего не было найдено, то:
Ищет вхождение [1]
Если при поиске по слову [1], и ранее по [2] и [3], ничего не было найдено, то:
Записываем в переменные значение 0
Понимаю сложновато сломал голову. Можно это как нибудь реализовать на MySQL 5.2.
Заранее Спасибо.
Неактивен
Пробовал с помощью блоков IF() в PHP но получается такая каша что этот вариант я вычеркнул сразу.
Может кто знает как реализовать это по проще в MySQL ???
Неактивен
Возможно вам подойдет полнотекстовый поиск?
Неактивен
Спасибо конечно но с английским у меня туго.
Неактивен
Ну, попробуйте подтянуть английский (без иронии, в программировании это бесценно).
И полнотекстовый индекс действительно спасет. Какой-нибудь
ORDER BY MATCH(data) AGAINST ('[3]', '[2]', '[1]') OR
MATCH(data) AGAINST(['2'],['1']) OR
MATCH(data) AGAINST('[1]')
Неактивен