функция сопоставления строк в mysql

#php #mysql

#php #mysql

Вопрос:

Мне нужно сопоставить строку со строками в столбце таблицы mysql, мне нужно выбрать строки, совпадение которых превышает 80%. есть ли какая-либо функция в mysql, которая сделает это?

например, строка «цитировать путем размещения» соответствует более чем на 80% строке «цитировать по месту». Вот так я фильтрую.

Спасибо!

Комментарии:

1. У вас есть особая причина для «80%»? можете ли вы рассказать нам о том, что вы делаете

Ответ №1:

ПОЛНОТЕКСТОВЫЙ поиск, вероятно, был бы лучшим подходом к тому, что вы делаете. В противном случае нет необходимости выбирать произвольный%.

Если вы выполняете более интенсивный поиск, ознакомьтесь с некоторыми движками, такими как Sphinx

Комментарии:

1. я думаю, что лучший способ — использовать ‘like’ и соответствовать 80% результату, который я получаю. правильно ли это.

2. Использование функции similar_text ($ str1, $ str2, $ match) в результатах поиска даст некоторый оптимальный результат, который я хотел, правильно?

3. Да, вы можете использовать подобные функции PHP для анализа ваших результатов на предмет точного% соответствия

Ответ №2:

попробуйте вырезать 20% строки в php, а затем использовать like для 80% вашей строки и всех строк для сравнения

Комментарии:

1. Возможно, я ошибаюсь, но я думаю, что он хочет, чтобы 80% отображалось где угодно, а не только в начале. Таким образом, сокращение будет сравнивать только определенные 80%, которые вы выбираете

2. @babonk да, я просто хочу сопоставить 80% в любом месте строки, а не в начале

3. о, итак, я прошу прощения за неправильное понимание вопроса

4. @banonk я хочу, чтобы некоторые параметры были выбраны по умолчанию на основе этого соответствия.

Ответ №3:

Вы могли бы попробовать взглянуть на функцию MYSQL soundex, которая может дать вам то, что вам нужно

Ответ №4:

Насколько я понимаю ваши критерии, вы хотите нечеткий поиск. Это не реализовано в MySQL. Вам нужно будет найти способ экстернализировать проверку для этого.