PHP / MySQL: поиск по полному тексту с использованием MATCH () AGAINST () & amp; СОРТИРОВАТЬ ПО?

Пожалуйста, кто-нибудь может помочь мне выполнить мою миссию по поиску в базе данных (которая имеет 2 столбца полнотекстового индекса), используя несколько слов и порядок по цене DESC.

Этот запрос работает (выполняет поиск по ключевым словам, введенным пользователем, создает оценку на основе количества найденных слов), но цена ORDER BY DESC кажется немного странной. пример

SELECT *, MATCH(title,description) AGAINST('nissan ford astra golf' IN BOOLEAN MODE) AS relevance FROM listings WHERE MATCH(title,description) AGAINST('nissan ford astra golf' IN BOOLEAN MODE) ORDER BY price DESC;

Ford Escort | Used | £100
Vauxhall Astra | New | £2000
VW Golf | Used | £500
Nissan Micra | Used | £2000

Я хотел бы установить в качестве приоритета столбец цен ORDER BY DESC или ASC.

Это заняло почти 5 лет
Надеюсь, что так далеко, надеюсь, какой-нибудь знающий парень может помочь мне завершить эту миссию.

Спасибо заранее.
Эндрю.

1

Решение

Я подозреваю, что цена хранится в виде строки, а не числа. Вот одно решение, если у вас нет десятичных знаков:

order by length(price) desc, price desc

В качестве альтернативы, преобразование в число:

order by substr(price, 2) + 0
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]