Ниже показан мой запрос, который мне нужно заказать с помощью этих трех столбцов. Это для комплексного поиска. Если я использовал один из них, он отлично работает. Но, управляя более чем одним, он не упорядочивает должным образом.
РЕДАКТИРОВАТЬ
На самом деле мне нужно, премиальные записи должны быть на первых позициях вместе с большим количеством избранных, а также элитные клиенты имеют больше приоритетов. Все эти работы условно
1) Сначала появятся новые фавориты
2) Но премия будет рассмотрена
3) Если базовый будет иметь 5 фаворитов, он не будет нажимать вверх, а основной – с небольшим приоритетом
4) Также элита имеет хороший приоритет
SELECT `Driver`.`id` , `Driver`.`login_id` , `Login`.`profile_type`, ................. ORDER BY `fav_count`, FIELD( `Login`.`profile_type` , "premium", "basic" ) , `Driver`.`is_elite` ASC
Результат выборки, который я ожидал
is_elite| profile_type | fav_count ________|_____________________|____________ 1 | premium | 4 1 | premium | 3 1 | premium | 2 1 | premium | 1 0 | basic | 5 0 | basic | 0
Пожалуйста, посоветуй мне . благодаря
Если вы хотите, чтобы вы указали вы, вам необходимо изменить порядок значений в ORDER BY:
ORDER BY `Driver`.`is_elite` DESC, FIELD( `Login`.`profile_type` , "premium", "basic" ) DESC, `fav_count` DESC
Примечание. Для всех столбцов сортировки также требуется спуск (DESC). Каждый из них сортируется по самому крупному.
неуверенный в своем вопросе, но это дает порядок, который вы показываете в примере.
order by profile_type desc, fav_count desc
Сделайте ORDER BY примерно так:
ORDER BY `table`.`is_elite`, `table`.`profile_type`, `table`.`fav_count` DESC
Это будет упорядочено так, как вы ожидаете (насколько я могу видеть из кода, который вы указали).
Из результата примера вы ожидали, что он выглядит так, как вы хотели использовать:
ORDER BY FIELD( `Login`.`profile_type` , "premium", "basic" ), `fav_count` DESC, `Driver`.`is_elite` ASC
Но в лучшем случае это спекулятивно, ваш вопрос не был сформулирован очень хорошо.