MySQL 8.0 Заказ по условию

Я хочу взять данные из таблицы продуктов. Приходится сортировать по цене, но так, чтобы в первую очередь показывались те, чья цена находится между заданным максимумом и минимумом.

Пример таблицы:

Заголовокцена
Продукт 110
Продукт 28
Продукт 315
Продукт 411
Продукт 512
Продукт 620
Продукт 724

Если мин = 10 и макс = 15

В результате должна получиться следующая последовательность: Продукт 1, Продукт 4, Продукт 5, Продукт 3, Продукт 2, Продукт 6, Продукт 7

Спасибо.

Я не понимаю, почему вы проголосовали против? Я написал нормальный вопрос.

coding-scripting 10.04.2022 17:32
3 метода стилизации элементов HTML
3 метода стилизации элементов HTML
Когда дело доходит до применения какого-либо стиля к нашему HTML, существует три подхода: встроенный, внутренний и внешний. Предпочтительным обычно...
Формы c голосовым вводом в React с помощью Speechly
Формы c голосовым вводом в React с помощью Speechly
Пытались ли вы когда-нибудь заполнить веб-форму в области электронной коммерции, которая требует много кликов и выбора? Вас попросят заполнить дату,...
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Будучи разработчиком веб-приложений, легко впасть в заблуждение, считая, что приложение без JavaScript не имеет права на жизнь. Нам становится удобно...
Flatpickr: простой модуль календаря для вашего приложения на React
Flatpickr: простой модуль календаря для вашего приложения на React
Если вы ищете пакет для быстрой интеграции календаря с выбором даты в ваше приложения, то библиотека Flatpickr отлично справится с этой задачей....
В чем разница между Promise и Observable?
В чем разница между Promise и Observable?
Разберитесь в этом вопросе, и вы значительно повысите уровень своей компетенции.
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Клиент для URL-адресов, cURL, позволяет взаимодействовать с множеством различных серверов по множеству различных протоколов с синтаксисом URL.
1
1
24
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Вы можете использовать CASE HWEN для определения двух групп.

1 между ценой

SELECT * FROM product
ORDER By CASE WHEN `price` BETWEEN 10 AND 15 Then 1 
ELSE 2 END ASC, `price` ASC
Title  | price
:----- | ----:
Prod 1 |    10
Prod 4 |    11
Prod 5 |    12
Prod 3 |    15
Prod 2 |     8
Prod 6 |    20
Prod 7 |    24

дб <> рабочий пример здесь

Спасибо за Ваш ответ. Это тоже работа.

coding-scripting 10.04.2022 17:33
Ответ принят как подходящий

Вы можете отсортировать сначала по логическому выражению price BETWEEN 10 AND 15 DESC, а затем по price:

SELECT *
FROM tablename
ORDER BY price BETWEEN 10 AND 15 DESC, price;

Смотрите демо.

Вы также можете просто сгруппировать 2 выбора в один с помощью СОЮЗ.

select * from test where value >= 10 and value <= 15
union
select * from test where value < 10 or value > 15

Выберите демо

Другие вопросы по теме