Zhandoss
@Zhandoss

Как сделать, чтобы поиск учитывал, если наименование введено слитно?

Подсказать решение по поиску на сайте? Пример: Hello world - так ищет, Helloworld - так не находит. Нужно решение, чтобы находил если даже юзер ввел слитно.
  • Вопрос задан
  • 222 просмотра
Пригласить эксперта
Ответы на вопрос 3
ThunderCat
@ThunderCat Куратор тега PHP
{PHP, MySql, HTML, JS, CSS} developer
простое решение "в лоб": разбить на слова експлоде(), полученный массив либо объединить в в строку через имплоде() используя "%". Но тут будет лажа с подготовленными выражениями, то есть так делать не желательно, работать будет, но это дыра в безопасности. Чуть сложнее - то же разбиение, а потом циклом создать плейсхолдеры по количеству элементов массива и соответствующие данные в массиве подстановок.
Ответ написан
@generate
...
Пользуйся SOUNDEX, он найдет если даже строка слитно
Отвечал тут

//Строка в таблице была Hello World
//Название базы test 
//name название столбца
//Helloworld поисковая фраза
SELECT * FROM test  WHERE SOUNDEX(name)  LIKE CONCAT('%',SUBSTRING(SOUNDEX('Helloworld'),2),'%');
Ответ написан
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
Ответ очевиден: добавить "склейку" в критерий поиска в самый конец условия.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы