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);

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

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;

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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.