mySQL wybierz zakres IN

84

Czy można zdefiniować zakres dla części IN zapytania, coś takiego

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

Zamiast

SELECT job FROM mytable WHERE id IN (10,11,12,13,14,15);
piekarnik
źródło

Odpowiedzi:

157

Nie możesz, ale możesz użyć BETWEEN

SELECT job FROM mytable WHERE id BETWEEN 10 AND 15

Zauważ, że BETWEENjest to włącznie i będzie obejmować elementy o identyfikatorze 10 i 15.

Jeśli nie chcesz włączenia, będziesz musiał wrócić do używania operatorów >i <.

SELECT job FROM mytable WHERE id > 10 AND id < 15
ESG
źródło
1
co powinienem zrobić, jeśli chcę odpytać pierwsze 5 pozycji z mojej tabeli? na przykład identyfikatory to 1,2,5,6,7,8. W tym przypadku powyższe podejście zwróci tylko 1,2,5.
Soroosh
1
Nie wiem co masz na myśli. Proponuję napisać nowe pytanie zawierające więcej szczegółów.
ESG
6

Aby wybrać dane w zakresie liczbowym, możesz użyć tego, BETWEENktóry zawiera.

SELECT JOB FROM MYTABLE WHERE ID BETWEEN 10 AND 15;
Lalit Dashora
źródło
Jaka jest różnica w stosunku do odpowiedzi ESG?
Torsten
3
Duplikat spamerski, z wyjątkiem tego, że jest to zła praktyka polegająca na umieszczaniu w kolumnie i tabeli wielkimi literami. W nazwach kolumn wielkość liter nie jest rozróżniana, więc jest to w porządku (tak jak w przypadku nie spowoduje to błędu), ale w większości systemów uniksowych w nazwach tabel rozróżniana jest wielkość liter. (Ale w Windows nazwa-tabeli również nie rozróżnia wielkości liter, więc to zapytanie mogłoby się tam udać) ... Podsumowując, dobrym planem jest, aby nie mylić ludzi z niepotrzebną zabawą wielkimi literami. Nie wiem, jak to się dzieje po odpowiedzi ESG.
jeroen e