Praxsuite

Operadores

Vincent Depassier · 29 de agosto de 2026

PraxQL — Operadores

Los operadores aparecen en condiciones where (y having para consultas de agregación). Cada condición tiene la forma:

{ "field": "NombreColumna", "op": "operador", "value": algúnValor }

Los nombres de operador se comparan sin distinguir mayúsculas: isNull, isnull e ISNULL son el mismo operador.


Operadores de Comparación

Operador

SQL equivalente

Descripción

eq

=

Igual

neq

!=

No igual

gt

>

Mayor que

gte

>=

Mayor o igual

lt

<

Menor que

lte

<=

Menor o igual

{ "field": "Total", "op": "gte", "value": 100 }
{ "field": "Estado", "op": "neq", "value": "Eliminado" }
{ "field": "FechaCreacion", "op": "gt", "value": "2026-01-01" }

Coincidencia de Patrones

Operador

SQL equivalente

Descripción

like

LIKE

Coincidencia de patrón, sensible a mayúsculas. Usa % como comodín.

ilike

ILIKE

Coincidencia de patrón, insensible a mayúsculas. Usa % como comodín.

{ "field": "Nombre", "op": "like", "value": "%Corp%" }
{ "field": "Email", "op": "ilike", "value": "%@gmail.com" }

La longitud del patrón está limitada a 200 caracteres.


Pertenencia a Conjunto

Operador

SQL equivalente

Descripción

in

IN (...)

El valor es uno de los elementos del array

notIn

NOT IN (...)

El valor no es ninguno de ellos. nin se acepta como alias.

{ "field": "Estado", "op": "in", "value": ["Activo", "Pendiente", "Trial"] }
{ "field": "Estado", "op": "notIn", "value": ["Eliminado", "Archivado"] }

value debe ser un array.


Verificaciones Nulas / Booleanas

Operador

SQL equivalente

Descripción

isNull

IS NULL

La columna no tiene valor

isNotNull

IS NOT NULL

La columna tiene valor

is

IS NULL / IS NOT NULL

La misma verificación, decidida por si mandás un valor

{ "field": "EliminadoEn", "op": "isNull" }
{ "field": "EliminadoEn", "op": "isNotNull" }

Preferí isNull y isNotNull. Dicen explícitamente lo que is expresa mediante la presencia o ausencia de value, que es la parte que nadie adivina: con is, mandar "value": null verifica IS NULL, y omitir la clave por completo verifica IS NOT NULL.

Para verificar una columna booleana, compará: { "field": "EsVerificado", "op": "eq", "value": true }. Mandá un true de JSON, nunca el string "true" — un string no matchea ninguna fila y no reporta ningún error.


Rango

Operador

SQL equivalente

Descripción

between

BETWEEN x AND y

Verificación de rango inclusivo

{ "field": "Fecha", "op": "between", "value": ["2026-01-01", "2026-06-30"] }
{ "field": "Puntaje", "op": "between", "value": [70, 100] }

value debe ser un array de dos elementos: [mínimo, máximo]. Ambos límites son inclusivos.


Operadores de Array / Texto

Operador

Descripción

contains

La columna array contiene todos los valores especificados

textsearch

Búsqueda de texto completo en una columna de texto

{ "field": "Etiquetas", "op": "contains", "value": ["urgente", "facturación"] }
{ "field": "Descripcion", "op": "textsearch", "value": "logística almacén" }

textsearch sirve para columnas de texto largo. Devuelve resultados sin ranking — no hay puntaje de relevancia, así que no podés ordenar por "mejor coincidencia".


Agrupación Lógica

AND (por defecto)

Las condiciones en el mismo array se unen con AND automáticamente:

"where": [
  { "field": "EsActivo", "op": "eq", "value": true },
  { "field": "Region",   "op": "eq", "value": "EU" }
]

→ WHERE EsActivo = true AND Region = 'EU'

OR

Usa un objeto or para unir condiciones con OR:

"where": [
  {
    "or": [
      { "field": "Region", "op": "eq", "value": "EU" },
      { "field": "Region", "op": "eq", "value": "US" }
    ]
  }
]

→ WHERE (Region = 'EU' OR Region = 'US')

AND anidado dentro de OR

"where": [
  { "field": "EsActivo", "op": "eq", "value": true },
  {
    "or": [
      { "field": "Region", "op": "eq", "value": "EU" },
      {
        "and": [
          { "field": "Region", "op": "eq", "value": "US" },
          { "field": "Nivel",  "op": "eq", "value": "Enterprise" }
        ]
      }
    ]
  }
]

→ WHERE EsActivo = true AND (Region = 'EU' OR (Region = 'US' AND Nivel = 'Enterprise'))


Guardrails

Límite

Valor

Máximo de condiciones where por consulta

50

Profundidad máxima de anidación de condiciones

5

Longitud máxima de patrón like/ilike

200 caracteres

Superar cualquiera de ellos devuelve 400 INVALID_QUERY en vez de un resultado truncado.