Skip to main content
Filter data using WHERE clauses with various operators.

Comparison Operators

:GET User WHERE age = 25
:GET User WHERE age != 25
:GET User WHERE age > 21
:GET User WHERE age >= 21
:GET User WHERE age < 65
:GET User WHERE age <= 65
OperatorMeaning
=Equal
!=Not equal
>Greater than
>=Greater than or equal
<Less than
<=Less than or equal

Logical Operators

AND

:GET User WHERE age > 21 AND status = "active"
DatabaseOutput
PostgreSQLSELECT * FROM users WHERE age > 21 AND status = 'active'
MongoDBdb.users.find({ age: { $gt: 21 }, status: 'active' })

OR

:GET User WHERE role = "admin" OR role = "moderator"
DatabaseOutput
PostgreSQLSELECT * FROM users WHERE role = 'admin' OR role = 'moderator'
MongoDBdb.users.find({ $or: [{ role: 'admin' }, { role: 'moderator' }] })

Combined with Parentheses

:GET User WHERE (age > 21 AND status = "active") OR role = "admin"

IN Operator

Match against a list of values.
:GET User WHERE role IN ("admin", "moderator", "editor")
DatabaseOutput
PostgreSQLSELECT * FROM users WHERE role IN ('admin', 'moderator', 'editor')
MongoDBdb.users.find({ role: { $in: ['admin', 'moderator', 'editor'] } })

NOT IN

:GET User WHERE status NOT IN ("banned", "suspended")

BETWEEN Operator

Match a range of values.
:GET User WHERE age BETWEEN 18 AND 65
DatabaseOutput
PostgreSQLSELECT * FROM users WHERE age BETWEEN 18 AND 65
MongoDBdb.users.find({ age: { $gte: 18, $lte: 65 } })

Date Range

:GET Order WHERE created_at BETWEEN "2024-01-01" AND "2024-12-31"

NOT BETWEEN

:GET Product WHERE price NOT BETWEEN 10 AND 50

LIKE Operator

Pattern matching for strings.
:GET User WHERE name LIKE "John%"
:GET User WHERE email LIKE "%@gmail.com"
:GET User WHERE name LIKE "%smith%"
PatternMeaning
John%Starts with “John”
%@gmail.comEnds with “@gmail.com”
%smith%Contains “smith”
DatabaseOutput
PostgreSQLSELECT * FROM users WHERE name LIKE 'John%'
MongoDBdb.users.find({ name: { $regex: '^John' } })

NOT LIKE

:GET User WHERE email NOT LIKE "%@test.com"

ILIKE (Case Insensitive)

:GET User WHERE name ILIKE "john%"
DatabaseOutput
PostgreSQLSELECT * FROM users WHERE name ILIKE 'john%'
MySQLSELECT * FROM users WHERE LOWER(name) LIKE 'john%'

NULL Checks

:GET User WHERE deleted_at IS NULL
:GET User WHERE phone IS NOT NULL
DatabaseOutput
PostgreSQLSELECT * FROM users WHERE deleted_at IS NULL
MongoDBdb.users.find({ deleted_at: null })

Complex Example

:GET id, name, email FROM User 
  WHERE status = "active" 
  AND age BETWEEN 21 AND 45 
  AND role IN ("user", "premium") 
  AND email LIKE "%@company.com"
  AND deleted_at IS NULL

Next Steps