rashidfarooq Ответов: 2

Как использовать LIKE %..% с Soundex в Mysql


Я должен использовать функцию soundex () с LIKE %...% в Mysql. Я понятия не имею, как мне написать запрос. Я сделал такой запрос.

$query = "SELECT * FROM tbl_name WHERE soundex(fieldname) LIKE soundex(%'element'%)";


но это не работает.

Кто-нибудь может мне помочь?

2 Ответов

Рейтинг:
2

J Middya

You can use the following :

$query = "SELECT * FROM tbl_name WHERE soundex(fieldname) LIKE soundex('%element%')";

Or

$query = "SELECT * FROM tbl_name WHERE soundex(fieldname) LIKE soundex('element')";

Or

$query = "SELECT * FROM tbl_name WHERE fieldname SOUNDS LIKE '%element%'";

Or

$query = "SELECT * FROM tbl_name WHERE fieldname SOUNDS LIKE 'element'";


Рейтинг:
1

Kim Togo

Нельзя не использовать Функция Soundex[^] вроде этого. Но вы можете это сделать

SELECT * FROM tbl_name WHERE fieldname SOUNDS LIKE 'element'


rashidfarooq

если я использую этот запрос, в нем есть проблема.
Предположим, пользователь вводит "день недели"в качестве значения элемента. Но в базе данных значение поля равно "день недели". Тогда этот запрос пропустит это значение. используя LIKE %..% это значение нельзя было пропустить. Но если я использую только как %...%, то я не могу справиться с орфографическими ошибками. Итак, есть ли какое-то другое решение моей проблемы?

Kim Togo

Да, я вижу проблему. На самом деле у меня та же проблема. Но для сусла это одно-единственное слово.
Может быть, это поможет ?
http://www.imranulhoque.com/mysql/mysql-function-soundex-match-multi-word-string/

rashidfarooq

спасибо за ответ. Эта функция хороша. Но эта функция не может быть использована для поиска одинаково звучащих значений из базы данных mysql. Для этого нам нужен правильный sql-запрос. Есть еще идеи?

Kim Togo

Я долго ходил, нашел этот PDF-файл.
http://nlp.stanford.edu/IR-book/pdf/irbookonlinereading.pdf

Попробуйте посмотреть на стр. 43-3. словари и толерантный поиск