MariaDB Where

Summary: in this tutorial, you will learn how to use the MariaDB where clause to filter rows returned by a query.

Introduction to MariaDB where clause

The where clause is an optional clause of the select statement, which specifies a search condition for selecting rows.

Here is the syntax of a select statement with a where clause:

select
    select_list
from
    table_name
where
    search_condition
order by
    sort_expression;
Code language: SQL (Structured Query Language) (sql)

In this syntax, you specify a search condition to select rows from a table.

If a row causes the search_condition to evaluate to true, the where clause includes the row in the result set.

The search condition may consist of one or multiple logical expressions. A logic expression always evaluates to one of three values true, false, or unknown. The logical expressions in the where clause is also known as predicates.

In the select statement, the where clause appears after the from clause and before the order by clause.

MariaDB evaluates the clauses in the select statement that consists of select, from, where, and order by clauses in the following sequence: from, where, select, order by:

mariadb where

In addition to the select statement, you can use the where clause in the update or delete statement to specify rows to update or delete.

MariaDB where clause examples

All the following examples will use the countries table from the sample database:

A) Using the MariaDB where clause with the equal (=) operator

The following example uses the where clause to select countries that have the region id 2:

select 
    name, 
    area, 
    region_id
from 
    countries
where 
    region_id = 2
order by
    name;
Code language: SQL (Structured Query Language) (sql)
mariadb where with equal operator

B) Using the MariaDB where clause with comparison operators

The following statement uses the where clause to find countries whose areas are greater than 2,000,000 km2:

select 
    name, 
    area
from 
    countries
where 
    area > 2000000
order by 
    area;
Code language: SQL (Structured Query Language) (sql)
mariadb where with greater than operator

C) Using the MariaDB where clause with the and operator

The and operator combines boolean expressions and only returns true if both expressions return true.

The following example uses the where clause with the and operator to find countries that are in region id 1 and have areas greater than 2,000,000 km2:

select 
    name, 
    area, 
    region_id
from 
    countries
where 
    region_id = 2 and 
    area > 2000000
order by 
    name;
Code language: SQL (Structured Query Language) (sql)

mariadb where with and operator

C) Using the MariaDB where clause with the or operator

Like the and operator, the or operator is used to combine logical expressions. However, the or operator returns true if at least one of the expressions returns true.

The following statement uses the or operator in the where clause to find countries that locate in region 2 or have  areas greater than 2,000,000 km2:

select 
    name, 
    area, 
    region_id
from 
    countries
where 
    region_id = 2 or 
    area > 2000000
order by 
    name;
Code language: SQL (Structured Query Language) (sql)
mariadb where with or operator

D) Using the MariaDB where clause to find rows whose values are between two values

The between operator returns true if a value is between two values:

expression between low and high
Code language: SQL (Structured Query Language) (sql)

It is a shortcut of:

expression >= low and expression <= high
Code language: SQL (Structured Query Language) (sql)

For example, this statement uses the between operator in the where clause to find countries that have areas between 1,001,449 and 1,566,500 km2:

select 
    name, 
    area
from 
    countries
where 
    area between 1001449 
        and 1566500
order by 
    area;
Code language: SQL (Structured Query Language) (sql)
mariadb where with betwen operator

E) Using the MariaDB where clause to find rows whose values are in a list

To check if a value is in a list of value, you use the in operator:

expression in (value1, value2,...)
Code language: SQL (Structured Query Language) (sql)

The in operator returns true if the expression evaluates to one of the value list value1, value2, …

The following statement uses the in operator in the where clause to find countries whose country codes are in the US, FR and JP country codes:

select 
    name, 
    country_code2
from 
    countries
where 
    country_code2 in ('US','FR','JP')
order by 
    name;
Code language: SQL (Structured Query Language) (sql)
mariadb where with IN operator

F) Using the MariaDB where clause to find rows based on a pattern

The like operator returns true if a value matches a specific pattern

expression LIKE pattern;
Code language: SQL (Structured Query Language) (sql)

To construct a pattern, you use two wildcards:

  • % matches one or more characters
  • _ matches one character

The following example uses the like operator in the where clause to find countries whose names start with the letter J:

select 
    name
from 
    countries
where 
    name like 'J%'
order by 
    name;
Code language: SQL (Structured Query Language) (sql)
mariadb where with like operator

In this tutorial, you will have learned how to use the MariaDB where clause to specify a search condition for selecting rows.

Was this tutorial helpful ?