MySQL BETWEEN Operator

What is the MySQL BETWEEN Operator?

The BETWEEN operator selects values within a given range. The values can be numbers, text, or dates. The BETWEEN operator is inclusive: begin and end values are included.

  • It is used to retrieve records based on the given range
  • The MySQL BETWEEN operator can be used with SELECT, DELETE, UPDATE and INSERT statements.
  • The two values provided in the BETWEEN operator are inclusive. For example, BETWEEN 10 and 20 means retrieving records that fall between these two values including 10 and 20.
  • You may use numbers, dates and text values in the BETWEEN operator.
  • The BETWEEN operator is used with the AND operator (as shown in the examples in the coming section).
  • The BETWEEN is equivalent to (min <= expr AND expr <= max).

BETWEEN Syntax

SELECT column_name(s)
FROM table_name
WHERE column_name BETWEEN value1 AND value2;

What is the use of between operator in MySQL?

The MySQL BETWEEN operator can be used with SELECT, DELETE, UPDATE and INSERT statements. The two values provided in the BETWEEN operator are inclusive. For example, BETWEEN 10 and 20 means retrieving records that fall between these two values including 10 and 20.

Demo Database

Below is a selection from the “Products” table in the Northwind sample database:

ProductIDProductNameSupplierIDCategoryIDUnitPrice
1Chais1110 boxes x 20 bags18
2Chang1124 – 12 oz bottles19
3Aniseed Syrup1212 – 550 ml bottles10
4Chef Anton’s Cajun Seasoning1248 – 6 oz jars22
5Chef Anton’s Gumbo Mix1236 boxes21.35

BETWEEN Example

The following SQL statement selects all products with a price between 10 and 20:

Example

SELECT * FROM Products<br>WHERE Price BETWEEN 10 AND 20;

NOT BETWEEN Example

To display the products outside the range of the previous example, use NOT BETWEEN:

Example

SELECT * FROM Products<br>WHERE Price NOT BETWEEN 10 AND 20;

BETWEEN with IN Example

The following SQL statement selects all products with a price between 10 and 20. In addition; do not show products with a CategoryID of 1,2, or 3:

Example

SELECT * FROM Products<br>WHERE Price BETWEEN 10 AND 20<br>AND CategoryID NOT IN (1,2,3);

BETWEEN Text Values Example

The following SQL statement selects all products with a ProductName between “Carnarvon Tigers” and “Mozzarella di Giovanni”:

Example

SELECT * FROM Products<br>WHERE ProductName BETWEEN 'Carnarvon Tigers' AND 'Mozzarella di Giovanni'<br>ORDER BY ProductName;

The following SQL statement selects all products with a ProductName between “Carnarvon Tigers” and “Chef Anton’s Cajun Seasoning”:

Example

SELECT * FROM Products<br>WHERE ProductName BETWEEN "Carnarvon Tigers" AND "Chef Anton's Cajun Seasoning"<br>ORDER BY ProductName;

NOT BETWEEN Text Values Example

The following SQL statement selects all products with a ProductName not between “Carnarvon Tigers” and “Mozzarella di Giovanni”:

Example

SELECT * FROM Products<br>WHERE ProductName NOT BETWEEN 'Carnarvon Tigers' AND 'Mozzarella di Giovanni'<br>ORDER BY ProductName;

Sample Table

Below is a selection from the “Orders” table in the Northwind sample database:

OrderIDCustomerIDEmployeeIDOrderDateShipperID
102489057/4/19963
102498167/5/19961
102503447/8/19962
102518437/9/19961
102527647/10/19962

BETWEEN Dates Example

The following SQL statement selects all orders with an OrderDate between ’01-July-1996′ and ’31-July-1996′:

Example

SELECT * FROM Orders<br>WHERE OrderDate BETWEEN '1996-07-01' AND '1996-07-31';

Examples of the MySQL BETWEEN Operator

Consider the following Students table.

In Operator Students Table MySQL BETWEEN
Students Table

1. When Range Is Numeric

1SELECT * FROM Students WHERE DaysPresent>=60 AND DaysPresent<=80;

The output we get is:

Without MySQL Between Example 1

Now let us do this using the BETWEEN operator. We do this using the following query:

1SELECT * FROM Students WHERE DaysPresent BETWEEN 60 AND 80;

We get the output as:

MySQL Between Example 1

As you can see, using the BETWEEN operator makes your code more readable and less complex.

2. When Range Is A Text Value

The BETWEEN operator is not just limited to numeric values. We can also specify text values in the range. Let us see how that works. How about finding records of those students who have their City name in the range between Aurangabad and Mumbai. The query will be like,

1SELECT * FROM Students WHERE City BETWEEN 'Aurangabad' AND 'Mumbai';

Before we move on to the output, let us take a look at what this would look like. The range we have stated is between Aurangabad and Mumbai.

So anything, that has a value alphabetically greater than Mumbai in the column, will get omitted from the result-set. That means we should not have the cities of Nagpur and Pune in the result-set and their corresponding student records.

Between Example 2

3. When Range Is A Date

Consider the following Employee table.

Between Employee Table
Employee Table

Let us find out which employees joined the company between 1st October 2018 and 1st October 2020. We use the following query for the same.

1SELECT * FROM Employee WHERE Date_Joined  BETWEEN ‘2018-10-01’ AND ‘2020-10-01’;

Alternatively, since some SQL databases may not support the above, you may also use,

1SELECT * FROM Employee WHERE Date_Joined BETWEEN CAST(‘2018-10-01’ AS DATE) AND CAST(‘2020-10-01’ AS DATE);

You get the output as below,

Between Example 3

MySQL BETWEEN Operator
Show Buttons
Hide Buttons