@glebn
Золото, а не человек!

Как сделать проверку BETWEEN между бОльшим и меньшим числом?

Добрый день!
Временный творческий ступор.
Как сделать чтоб BETWEEN делал проверку и между большим числом и меньшим.
Например между 20 и 30 все ок - работает.
А между 30 и 20 - пустой результат.
Делать условие какая переменная больше и менять местами в запросе не хочется. Есть идеи?
  • Вопрос задан
  • 231 просмотр
Решения вопроса 1
@JuniorNoobie
Сижу в поддержке, пишу мелкие проекты
Добавьте через OR вторую строчку BETWEEN с поменянными аргументами. Можете использовать структуру CASE в запросе.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 3
@BorisKorobkov Куратор тега MySQL
Web developer
Делать условие какая переменная больше и менять местами в запросе не хочется

Именно это и будет самым эффективным решением.
Ответ написан
Комментировать
@vyrkmod
Пишу на php. И не стыдно.
BETWEEN LEAST(30,20) AND GREATEST(30,20)
Ответ написан
Комментировать
@mletov
Можно вынести в скалярные переменные
Что-то вроде
DECLARE @minValue INT, @maxValue INT;
IF (@v1 < @v2) 
BEGIN
   SET @minValue = @v1;
   SET @maxValue = @v2;
END
ELSE
BEGIN
   SET @minValue = @v2;
   SET @maxValue = @v1;
END

SELECT *
FROM table
WHERE v BETWEEN @minValue AND @maxValue


С поправкой на синтаксис MySql
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы