Skip to main content
All operators supported by OmniQL.

Comparison Operators

OperatorDescriptionExample
=EqualWHERE age = 25
!=Not equalWHERE status != "inactive"
>Greater thanWHERE age > 21
>=Greater than or equalWHERE age >= 18
<Less thanWHERE price < 100
<=Less than or equalWHERE quantity <= 10

Examples

:GET User WHERE age = 25
:GET User WHERE age != 25
:GET User WHERE age > 21
:GET User WHERE age >= 18
:GET User WHERE age < 65
:GET User WHERE age <= 30

Logical Operators

OperatorDescriptionExample
ANDBoth conditions trueWHERE age > 21 AND active = true
OREither condition trueWHERE role = "admin" OR role = "mod"
NOTNegate conditionWHERE NOT status = "banned"

Examples

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

Precedence

NOT > AND > OR Use parentheses to control order:
-- Without parentheses: AND evaluated first
:GET User WHERE a = 1 OR b = 2 AND c = 3
-- Equivalent to: a = 1 OR (b = 2 AND c = 3)

-- With parentheses: OR evaluated first
:GET User WHERE (a = 1 OR b = 2) AND c = 3

Arithmetic Operators

OperatorDescriptionExample
+Additionprice + tax
-Subtractiontotal - discount
*Multiplicationquantity * price
/Divisiontotal / count
%Moduloid % 2

Examples

:GET Product WITH name, price, price * 1.1 AS with_tax
:UPDATE Product SET price = price * 0.9 WHERE category = "sale"
:UPDATE Account SET balance = balance + 100 WHERE id = 1
:GET User WHERE id % 2 = 0

Range Operators

BETWEEN

:GET User WHERE age BETWEEN 18 AND 65
:GET Order WHERE created_at BETWEEN "2024-01-01" AND "2024-12-31"
DatabaseOutput
PostgreSQLSELECT * FROM users WHERE age BETWEEN 18 AND 65
MySQLSELECT * FROM users WHERE age BETWEEN 18 AND 65
MongoDBdb.users.find({ age: { $gte: 18, $lte: 65 } })

NOT BETWEEN

:GET Product WHERE price NOT BETWEEN 10 AND 50

Set Operators

IN

:GET User WHERE role IN ("admin", "moderator", "editor")
:GET Order WHERE status IN ("pending", "processing")
DatabaseOutput
PostgreSQLSELECT * FROM users WHERE role IN ('admin', 'moderator', 'editor')
MySQLSELECT * 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")
DatabaseOutput
PostgreSQLSELECT * FROM users WHERE status NOT IN ('banned', 'suspended')
MongoDBdb.users.find({ status: { $nin: ['banned', 'suspended'] } })

Pattern Operators

LIKE

PatternMeaning
%Any sequence of characters
_Any single character
:GET User WHERE name LIKE "John%"
:GET User WHERE email LIKE "%@gmail.com"
:GET User WHERE name LIKE "%smith%"
:GET User WHERE code LIKE "A_123"
DatabaseOutput
PostgreSQLSELECT * FROM users WHERE name LIKE 'John%'
MySQLSELECT * 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%'
Note: ILIKE is PostgreSQL-native. MySQL translates to LIKE with LOWER().

NULL Operators

IS NULL

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

IS NOT NULL

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

Operator Summary by Database

OperatorPostgreSQLMySQLMongoDB
===$eq
!=!=!=$ne
>>>$gt
>=>=>=$gte
<<<$lt
<=<=<=$lte
INININ$in
NOT INNOT INNOT IN$nin
BETWEENBETWEENBETWEEN$gte/$lte
LIKELIKELIKE$regex
ILIKEILIKELIKE$regex with i flag
IS NULLIS NULLIS NULLnull
IS NOT NULLIS NOT NULLIS NOT NULL$ne: null
ANDANDANDimplicit
OROROR$or
NOTNOTNOT$not

Limitations

Not currently supported in OmniQL (use native SQL):
  • JSON operators (->, ->>, @>, ?)
  • Array operators (ANY, ALL)
  • String concatenation (||)
  • EXISTS / NOT EXISTS subqueries

Next Steps