mySQL Select IN Bereich

84

Ist es möglich, einen Bereich für den IN-Teil der Abfrage zu definieren?

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

Anstatt

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

Antworten:

153

Sie können nicht, aber Sie können verwenden BETWEEN

SELECT job FROM mytable WHERE id BETWEEN 10 AND 15

Beachten Sie, dass dies BETWEENinklusive ist und Elemente mit der ID 10 und 15 enthält.

Wenn Sie keine Aufnahme wünschen, müssen Sie auf die Operatoren >und zurückgreifen <.

SELECT job FROM mytable WHERE id > 10 AND id < 15
ESG
quelle
1
Was soll ich tun, wenn ich die ersten 5 Elemente in meiner Tabelle abfragen möchte? Zum Beispiel sind die IDs 1,2,5,6,7,8. In diesem Fall gibt der obige Ansatz nur 1,2,5 zurück.
Soroosh
1
Nicht sicher was du meinst. Ich würde vorschlagen, eine neue Frage mit mehr Details zu schreiben.
ESG
6

Um Daten im numerischen Bereich auszuwählen, können Sie BETWEENFolgendes verwenden.

SELECT JOB FROM MYTABLE WHERE ID BETWEEN 10 AND 15;
Lalit Dashora
quelle
Was ist der Unterschied zur Antwort von ESG?
Torsten
2
Spam-Duplikate mit Ausnahme dieses Duplikats sind eine schlechte Praxis, wenn Spalte und Tabelle in Großbuchstaben geschrieben werden. Spaltennamen unterscheiden nicht zwischen Groß- und Kleinschreibung, daher ist dies in Ordnung (wie in, erzeugt keinen Fehler), aber Tabellennamen unterscheiden in den meisten Unix-Systemen zwischen Groß- und Kleinschreibung. (Unter Windows unterscheidet der Tabellenname auch nicht zwischen Groß- und Kleinschreibung, sodass diese Abfrage dort erfolgreich ist.) ... Alles in allem ist es ein guter Plan, die Leute nicht mit unnötigem Spielen mit Großbuchstaben zu verwechseln. Wie dies nach der Antwort von ESG positiv bewertet wird, ist mir ein Rätsel.
Jeroen e