Zhandoss
@Zhandoss

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

Подсказать решение по поиску на сайте? Пример: Hello world - так ищет, Helloworld - так не находит. Нужно решение, чтобы находил если даже юзер ввел слитно.
  • Вопрос задан
  • 220 просмотров
Пригласить эксперта
Ответы на вопрос 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
Ответ очевиден: добавить "склейку" в критерий поиска в самый конец условия.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
ИТЦ Аусферр Магнитогорск
от 100 000 до 160 000 ₽
26 апр. 2024, в 13:47
1000 руб./за проект
26 апр. 2024, в 13:40
4000 руб./за проект
26 апр. 2024, в 13:39
500 руб./за проект