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

SELECT * FROM Websites
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

SELECT * FROM Websites
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

SELECT * FROM Websites
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

SELECT * FROM Websites
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

SELECT * FROM Websites
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

SELECT * FROM access_log
WHERE date BETWEEN '2016-05-10' AND '2016-05-14';

Ausgabeergebnis der Ausführung:


lamp

Bitte beachten Sie, dass der BETWEEN-Operator in verschiedenen Datenbanken unterschiedliche Ergebnisse liefern kann!
In einigen Datenbanken wählt BETWEEN Felder aus, die zwischen zwei Werten liegen, aber die beiden Testwerte nicht einschließen.
In einigen Datenbanken wählt BETWEEN Felder aus, die zwischen zwei Werten liegen und beide Testwerte einschließen.
In einigen Datenbanken wählt BETWEEN Felder aus, die zwischen zwei Werten liegen und den ersten Testwert einschließen, aber nicht den letzten Testwert.

Überprüfen Sie daher, wie Ihre Datenbank den BETWEEN-Operator behandelt!

Andere Erweiterungen