Страницы

Поиск по вопросам

четверг, 9 апреля 2020 г.

MySQL ORDER BY приближенное значение

#php #mysql

                    
Доброго времени суток!
Сразу приведу пример чтобы было понятно.
На сайте стандартный поиск сортирует по title (названию новости).
У нас есть например 2 новости "семь" и "восемь"
и если ввести "семь" то выведет в первую очередь "восемь", т.к. у нас сортировка
по алфавиту.
Как написать поиск более точный?
PHP
    


Ответы

Ответ 1



Если конкретно надо вот прям сначала те которые начинаются, а потом которые только содержат, то WHERE title LIKE 'семь%' ORDER BY title UNION SELECT ... WHERE title LIKE '%семь%' ORDER BY title Но вообще то что тебе нужно называется полнотекстовый поиск.

Ответ 2



попробуйте так SELECT title, CONCAT(' ', title) as title_ext FROM table WHERE title like '%семь%' ORDER BY CONCAT(' ', title)

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

Отправить комментарий