Comparison operators

A comparison operator tests the relationship between two values and returns a corresponding value of true, false, or NULL.

Table of contents

Basic operators

For simple data types, the following basic operators can be used:

Operator

Description

<

Less than

>

Greater than

<=

Less than or equal to

>=

Greater than or equal to

=

Equal

<>

Not equal

!=

Not equal (same as <>)

When comparing strings, a lexicographical comparison is performed:

  1. cr> select name from locations where name > 'Argabuthon' order by name;
  2. +------------------------------------+
  3. | name |
  4. +------------------------------------+
  5. | Arkintoofle Minor |
  6. | Bartledan |
  7. | Galactic Sector QQ7 Active J Gamma |
  8. | North West Ripple |
  9. | Outer Eastern Rim |
  10. +------------------------------------+
  11. SELECT 5 rows in set (... sec)

When comparing dates, ISO date formats can be used:

  1. cr> select date, position from locations where date <= '1979-10-12' and
  2. ... position < 3 order by position;
  3. +--------------+----------+
  4. | date | position |
  5. +--------------+----------+
  6. | 308534400000 | 1 |
  7. | 308534400000 | 2 |
  8. +--------------+----------+
  9. SELECT 2 rows in set (... sec)

Tip

Comparison operators are commonly used to filter rows (e.g., in the WHERE and HAVING clauses of a SELECT statement). However, basic comparison operators can be used as value expressions in any context. For example:

  1. cr> SELECT 1 < 10 as my_column;
  2. +--------------+
  3. | my_column |
  4. +--------------+
  5. | true |
  6. +--------------+
  7. SELECT 1 rows in set (... sec)

WHERE clause operators

Within a WHERE clause, the following operators can also be used:

Operator

Description

~

Matches regular expression (case sensitive)

!~

Matches regular expression (case insensitive)

!~

Does not match regular expression (case sensitive)

!~*

Does not match regular expression (case insensitive)

LIKE (ILIKE)

Matches a part of the given value

NOT

Negates a condition

IS NULL

Matches a null value

IS NOT NULL

Matches a non-null value

ip << range

True if IP is within the given IP range (using CIDR notation)

x BETWEEN y AND z

Shortcut for x >= y AND x <= z

See also