ForHosting KIT · Utilidades de desarrollo

Cree una cláusula WHERE SQL parametrizada desde filtros

Convierta una lista estructurada de filtros de aplicación en las dos piezas que necesita un cliente de base de datos: una cláusula WHERE SQL con marcadores posicionales y un arreglo separado de parámetros ordenados.

● BetaGratis · en su navegador
Úselo desde WebAPIEmailTelegramApp pronto

Corre en su navegador. Gratis y sin límite: sus datos no salen de esta página.

Cada nombre de campo se entrecomilla como identificador SQL, incluidos los segmentos de un nombre cualificado, mientras que los valores quedan fuera del texto SQL. Los filtros conservan su orden original y se unen mediante AND, por lo que el resultado es predecible para generadores de consultas, herramientas administrativas, informes y endpoints que ya reciben filtros como datos.

Construya la estructura SQL sin concatenar valores

Las pantallas de búsqueda dinámica suelen comenzar con registros aparentemente inocuos: un campo, un operador y un valor. El riesgo aparece al convertirlos en SQL insertando el valor directamente en una cadena. Este generador mantiene separados la estructura y los datos. Devuelve una cláusula WHERE SQL parametrizada con marcadores posicionales al estilo PostgreSQL, como $1 y $2, además de un arreglo params exactamente en el orden correspondiente. Inserte la cláusula en una sentencia SELECT, UPDATE o DELETE más amplia y entregue params a un controlador de base de datos compatible. El generador no ejecuta consultas, no se conecta a una base de datos, no inspecciona esquemas ni decide qué columnas puede usar quien llama. Su aplicación debe conservar una lista permitida cuando los usuarios puedan influir en los campos. El entrecomillado evita que la puntuación o las palabras reservadas rompan la sintaxis, pero la autorización sigue siendo responsabilidad de la aplicación. Como los filtros se unen mediante AND en el orden recibido, la salida es estable y fácil de registrar, comparar o combinar con una consulta fija.

Comprenda los operadores, marcadores y controles de nulos

Se admiten operadores de igualdad, desigualdad, comparación de orden, LIKE, NOT LIKE, IN, NOT IN, IS NULL e IS NOT NULL. El texto del operador se normaliza a mayúsculas y los espacios repetidos se reducen, de modo que una escritura como “not like” produce SQL canónico. Cada comparación ordinaria consume un parámetro. IN y NOT IN exigen un arreglo no vacío y lo expanden a un marcador por elemento, sin alterar el orden. Los operadores de nulos no consumen parámetros ni necesitan valor, porque su gramática SQL no incluye marcadores. Si falta el valor para cualquier otro operador, se rechaza la entrada en lugar de generar SQL incompleto. Se aceptan valores escalares JSON, como cadenas, números, booleanos y null; los arreglos se reservan para los dos operadores de lista. El resultado utiliza deliberadamente marcadores numerados con signo de dólar, apropiados para PostgreSQL y bibliotecas compatibles. Si su controlador usa signos de interrogación o parámetros con nombre, traduzca la sintaxis en un adaptador controlado y conserve el orden de parámetros devuelto.

Entrecomille identificadores y valide la política de la aplicación

Cada campo se trata como un identificador posiblemente cualificado. Un nombre como users.created_at se convierte en dos segmentos entrecomillados por separado, y una comilla doble interna se escapa duplicándola según las reglas estándar de identificadores SQL. Se rechazan los nombres vacíos y los segmentos vacíos separados por puntos. Este tratamiento impide que una cadena de campo se confunda con sintaxis SQL sin entrecomillar, pero no afirma que todos los motores utilicen reglas idénticas. Confirme la compatibilidad con su base de datos, sobre todo si no sigue la convención de comillas dobles. Además, escapar no equivale a conceder permisos. Si una persona externa elige campos, asocie las claves públicas de filtro con un conjunto explícito de columnas reales antes de invocar el generador. Aplique también reglas de negocio a los operadores: un endpoint de informes puede permitir igualdad y rangos, pero negar búsquedas por patrones aunque LIKE sea compatible. Todo operador SQL desconocido produce un error de entrada claro en lugar de pasar sintaxis no reconocida. La capacidad es determinista, no realiza solicitudes de red y devuelve únicamente la cláusula y sus parámetros.

Alimente un endpoint de filtros API

Convierta filtros validados de la cadena de consulta en una cláusula y parámetros ordenados para la base de datos.

Cree una consulta interna de informes

Transforme filas de un generador de informes en predicados AND sin insertar valores directamente en el texto SQL.

Genere consultas de repositorio comprobables

Capture por separado la cláusula determinista y el arreglo de parámetros al probar la capa de acceso a datos.

¿Cuánto cuesta?

Cada solicitud API comienza en $0.002. El ejecutor del navegador está disponible para uso interactivo.

¿Ejecuta esta herramienta el SQL?

No. Solo devuelve una cláusula WHERE y un arreglo params ordenado; su aplicación entrega ambos al controlador de la base de datos.

¿Qué sintaxis de marcadores genera?

Genera marcadores numerados al estilo PostgreSQL: $1, $2 y así sucesivamente.

¿Puedo usar IN y NOT IN?

Sí. Proporcione un arreglo no vacío como valor y el generador creará un marcador para cada elemento.

¿Cómo se representan los controles de nulos?

Use IS NULL o IS NOT NULL. Estos operadores no necesitan valor ni añaden elementos a params.

¿El escape de identificadores sustituye una lista de columnas permitidas?

No. El escape protege la sintaxis; la lista permitida decide qué columnas y nombres cualificados puede filtrar quien llama.

Todo lo de esta página está disponible por programación. Esta sección es para equipos que quieren integrarlo en sus sistemas; el resto puede usar la herramienta de arriba sin más.

POSThttps://api.kit.forhosting.com/dev2/sql-where-builder

¿Prefiere automatizarlo? Un POST autenticado crea la tarea; el resultado llega por webhook o enlace firmado. La misma capacidad también se ejecuta aquí en la web, por email y desde Telegram — y pronto también desde nuestra app.

curl -X POST https://api.kit.forhosting.com/dev2/sql-where-builder \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"filters":[{"field":"users.status","operator":"=","value":"active"},{"field":"users.age","operator":">=","value":21}]}'
{
  "filters": [
    {
      "field": "users.status",
      "operator": "=",
      "value": "active"
    },
    {
      "field": "users.age",
      "operator": ">=",
      "value": 21
    }
  ]
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "dev2.sql_where_builder",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

La API es asíncrona: la llamada devuelve un task_id al instante y el resultado llega por webhook. El polling está limitado a 1 req/s por tarea.

Por solicitud$0.002

Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.

max_items100
HTTPCódigoSignificado
401unauthorizedAPI key ausente o inválida.
402insufficient_balanceEl saldo no cubre el precio de la tarea.
404unknown_typeEl tipo de tarea no existe.
429rate_limitedDemasiadas peticiones. Use el webhook en vez de sondear.

Ver la documentación completa del KIT →