Обычно мне приходится запрашивать очень большую таблицу для нескольких переменных с множеством условий для каждой переменной. Часто переменную необходимо запрашивать для нескольких диапазонов. Например, мне могут понадобиться все записи VAR_1, где VAR_1 находится в диапазоне 200–300, 350–400, 450–500.
Обычно я бы написал это следующим образом, но мне сказали, что использование IN()
вместо множественных OR было бы намного эффективнее.
SELECT * FROM table
WHERE VAR_1 BETWEEN '200' AND '300' OR
VAR_1 BETWEEN '350' AND '400' OR
VAR_1 BETWEEN '450' AND '500'
Есть ли способ сжать эту информацию и избавиться от OR
путем вложения предложений LIKE
или BETWEEN
в IN()
?
Что-то вроде:
ГДЕ VAR_1 IN (МЕЖДУ '200' И '300', МЕЖДУ '350' И '400', МЕЖДУ '450' И '500')
или
ГДЕ VAR_1 IN ('[200-300 ]','[350-400]','[450-500]')
Я пробовал такие вещи, но синтаксис явно неверен. Любые идеи или направления, на которые вы можете мне указать, были бы замечательными, но все еще очень новыми для SQL.