Всем доброго времени суток.
Задам вопрос тут, так как не уверен точно, в какой теме ему место))
В результате поиска по выражению "Samsung 2330M" в БД получаю массив совпадений по словам
PHP:
скопировать код в буфер обмена
( ( [id] => 19 [name] => Samsung 5578 ) ( [id] => 5 [name] => Samsung I9001 Metallic Black ) ( [id] => 16 [name] => Samsung NP300E4A-A03 2330M ) )
Тут все хорошо, за исключением сортировки.
Как видно искомый товар "Samsung NP300E4A-A03 2330M" самый последний по запросу "Samsung 2330M".
Очевидно, что его нужно подтолкнуть вверх, на первое место.
Поиск в базе идет по обычным LIKE. Выборка по нескольким полям, по этому не смог придумать что ставить на первое место в ORDER BY из полей.
Может есть какие-то решения, чтобы в запросе проверять, что больше совпало из выборки и по ним сортировать?
Либо вариант сортировки массива по большему совпадению слов в name? Но тут придется прогонять массив неизвестно какого объема. Не будет ли долгим весь этот процесс?
|