mySQL выберите диапазон IN


84

Можно ли определить диапазон для IN части запроса, что-то вроде этого

SELECT job FROM mytable WHERE id IN (10..15);

Вместо

SELECT job FROM mytable WHERE id IN (10,11,12,13,14,15);

Ответы:


157

Вы не можете, но можете использовать BETWEEN

SELECT job FROM mytable WHERE id BETWEEN 10 AND 15

Обратите внимание, что BETWEENэто включено и включает элементы с идентификаторами 10 и 15.

Если вы не хотите включить, вы должны падать обратно с помощью >и <операторов.

SELECT job FROM mytable WHERE id > 10 AND id < 15

1
что мне делать, если я хочу запросить первые 5 элементов в моей таблице? например, идентификаторы 1,2,5,6,7,8. В этом случае вышеуказанный подход вернет только 1,2,5.
Soroosh

1
Не уверен, что вы имеете в виду. Я бы предложил написать новый вопрос с более подробной информацией.
ESG

6

Чтобы выбрать данные в числовом диапазоне, вы можете использовать BETWEENего включительно.

SELECT JOB FROM MYTABLE WHERE ID BETWEEN 10 AND 15;

В чем разница с ответом ESG?
Torsten

3
Дубликат спама, за исключением того, что это плохая практика при переводе столбца и таблицы в верхний регистр. Имена столбцов нечувствительны к регистру, так что это нормально (например, не будет вызывать ошибки), но имена таблиц чувствительны к регистру в большинстве систем Unix. (Но в Windows имя-таблицы также нечувствительно к регистру, поэтому этот запрос будет успешным) ... В общем, это хороший план, чтобы не путать людей ненужными играми с верхним регистром. Я не понимаю, как за это проголосуют после ответа ESG.
jeroen e 07
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.