SQL BETWEEN-Operatoren
Der BETWEEN-Operator wählt Werte in einem Bereich zwischen zwei Werten aus. Diese Werte können numerisch, Text oder Datumsangaben sein.
SQL-BETWEEN-Syntax
SELECT column1, column2, ... FROM table_name WHERE column BETWEEN value1 AND value2;
Parameterbeschreibung:
- column2, column2, ...: Die Feldnamen, die ausgewählt werden sollen, können mehrere Felder sein. Wenn keine Feldnamen angegeben werden, werden alle Felder ausgewählt.
- table_name: Der Name der Tabelle, die abgefragt werden soll.
- column: Der Name des Feldes, das abgefragt werden soll.
- value1: Der Startwert des Bereichs.
- value2: Der Endwert des Bereichs.
Demo-Datenbank
In diesem Tutorial verwenden wir die Beispieldatenbank EXAMPLE.
Das Folgende sind Daten, die aus der Tabelle "Websites" ausgewählt wurden:
mysql> SELECT * FROM Websites; +----+---------------+---------------------------+-------+---------+ | id | name | url | alexa | country | +----+---------------+---------------------------+-------+---------+ | 1 | Google | https://www.google.cm/ | 1 | USA | | 2 | 淘宝 | https://www.taobao.com/ | 13 | CN | | 3 | Example | http://www.example.com/ | 5000 | USA | | 4 | 微博 | http://weibo.com/ | 20 | CN | | 5 | Facebook | https://www.facebook.com/ | 3 | USA | | 7 | stackoverflow | http://stackoverflow.com/ | 0 | IND | +----+---------------+---------------------------+-------+---------+
Beispiel für den BETWEEN-Operator
Die folgende SQL-Anweisung wählt alle Websites mit einem alexa-Wert zwischen 1 und 20 aus:
Beispiel
WHERE alexa BETWEEN 1 AND 20;
Ausgabeergebnis der Ausführung:
Beispiel für den NOT BETWEEN-Operator
Um Websites anzuzeigen, die nicht im Bereich des obigen Beispiels liegen, verwenden Sie NOT BETWEEN:
Beispiel
WHERE alexa NOT BETWEEN 1 AND 20;
Ausgabeergebnis der Ausführung:
BETWEEN-Operator mit IN-Beispiel
Die folgende SQL-Anweisung wählt alle Websites aus, deren alexa zwischen 1 und 20 liegt, deren country aber nicht USA und IND ist:
Beispiel
WHERE (alexa BETWEEN 1 AND 20)
AND country NOT IN ('USA', 'IND');
Ausgabeergebnis der Ausführung:
BETWEEN-Operator mit Beispiel für Textwerte
Die folgende SQL-Anweisung wählt alle Websites aus, deren Name mit einem Buchstaben zwischen 'A' und 'H' beginnt:
Beispiel
WHERE name BETWEEN 'A' AND 'H';
Ausgabeergebnis der Ausführung:
NOT BETWEEN-Operator mit Beispiel für Textwerte
Die folgende SQL-Anweisung wählt alle Websites aus, deren Name nicht mit einem Buchstaben zwischen 'A' und 'H' beginnt:
Beispiel
WHERE name NOT BETWEEN 'A' AND 'H';
Ausgabeergebnis der Ausführung:
Beispieltabelle
Das Folgende sind die Daten aus der Website-Zugriffsprotokoll-Tabelle "access_log", wobei:
- aid:ist die Auto-Increment-ID.
- site_id: ist die Website-ID, die der Tabelle websites entspricht.
- count: die Anzahl der Besuche.
- date:ist das Besuchsdatum.
mysql> SELECT * FROM access_log; +-----+---------+-------+------------+ | aid | site_id | count | date | +-----+---------+-------+------------+ | 1 | 1 | 45 | 2016-05-10 | | 2 | 3 | 100 | 2016-05-13 | | 3 | 1 | 230 | 2016-05-14 | | 4 | 2 | 10 | 2016-05-14 | | 5 | 5 | 205 | 2016-05-14 | | 6 | 4 | 13 | 2016-05-15 | | 7 | 3 | 220 | 2016-05-15 | | 8 | 5 | 545 | 2016-05-16 | | 9 | 3 | 201 | 2016-05-17 | +-----+---------+-------+------------+ 9 rows in set (0.00 sec)
Die in diesem Tutorial verwendete SQL-Datei für die Tabelle access_log:access_log.sql。
BETWEEN-Operator mit Datumswerten – Beispiel
Die folgende SQL-Anweisung wählt alle Besuchsdatensätze aus, bei denen das Datum zwischen '2016-05-10' und '2016-05-14' liegt:
Beispiel
WHERE date BETWEEN '2016-05-10' AND '2016-05-14';
Ausgabeergebnis der Ausführung:
|
Bitte beachten Sie, dass der BETWEEN-Operator in verschiedenen Datenbanken unterschiedliche Ergebnisse liefern kann! Überprüfen Sie daher, wie Ihre Datenbank den BETWEEN-Operator behandelt! |