ForHosting KIT · Entwickler-Tools

Parametrisierte SQL-WHERE-Klausel aus Filtern erstellen

Wandeln Sie eine strukturierte Liste von Anwendungsfiltern in die beiden Bestandteile um, die ein Datenbankclient benötigt: eine SQL-WHERE-Klausel mit Positionsparametern und ein separates, geordnetes Parameterarray.

● BetaKostenlos · im Browser
Nutzen Sie es über WebAPIE-MailTelegramApp bald

Läuft direkt in Ihrem Browser – kostenlos. Ihre Datei verlässt Ihren Browser nicht und wird an keinen Server übertragen.

Jeder Feldname wird als SQL-Bezeichner in Anführungszeichen gesetzt, bei qualifizierten Namen auch jedes einzelne Segment, während die Werte außerhalb des SQL-Texts bleiben. Die Filter behalten ihre ursprüngliche Reihenfolge und werden mit AND verknüpft. Dadurch ist das Ergebnis für Query-Builder, Verwaltungswerkzeuge, Berichtsansichten und Endpunkte, die Filter bereits als Daten erfassen, zuverlässig vorhersehbar.

Erstellen Sie SQL-Strukturen ohne verkettete Werte

Dynamische Suchmasken beginnen oft mit scheinbar harmlosen Datensätzen aus Feld, Operator und Wert. Gefährlich wird es, wenn diese Datensätze durch direktes Einfügen des Werts in eine Zeichenkette zu SQL werden. Dieser Generator trennt Struktur und Daten. Er liefert eine parametrisierte SQL-WHERE-Klausel mit Positionsparametern im PostgreSQL-Stil wie $1 und $2 sowie ein params-Array in exakt passender Reihenfolge. Fügen Sie die Klausel in eine größere SELECT-, UPDATE- oder DELETE-Anweisung ein und übergeben Sie params an einen kompatiblen Datenbanktreiber. Der Generator führt keine Abfrage aus, stellt keine Datenbankverbindung her, untersucht kein Schema und entscheidet nicht, welche Spalten ein Aufrufer verwenden darf. Wenn Benutzer Feldnamen beeinflussen können, muss Ihre Anwendung weiterhin eine Positivliste führen. Das Quoting verhindert, dass Satzzeichen oder reservierte Wörter die Syntax beschädigen; für die Berechtigung bleibt jedoch Ihre Anwendung zuständig. Da die Filter in der gelieferten Reihenfolge mit AND verbunden werden, ist die Ausgabe stabil und lässt sich einfach protokollieren, vergleichen oder mit einem festen Abfragepräfix kombinieren.

Verstehen Sie Operatoren, Parameter und Nullprüfungen

Unterstützt werden Gleichheit, Ungleichheit, Größenvergleiche, LIKE, NOT LIKE, IN, NOT IN, IS NULL und IS NOT NULL. Der Operatortext wird in Großbuchstaben normalisiert und mehrfacher Leerraum zusammengefasst, sodass eine Eingabe wie „not like“ kanonisches SQL ergibt. Jeder gewöhnliche Vergleich verbraucht einen Parameter. IN und NOT IN verlangen ein nicht leeres Array und erweitern es unter Wahrung der Reihenfolge zu einem Platzhalter je Element. Nulloperatoren verbrauchen keinen Parameter und benötigen keinen Wert, weil ihre SQL-Grammatik keinen Platzhalter enthält. Fehlt bei einem anderen Operator der Wert, wird die Eingabe abgelehnt, statt unvollständiges SQL zu erzeugen. Akzeptiert werden skalare JSON-Werte einschließlich Zeichenketten, Zahlen, boolescher Werte und null; Arrays sind den beiden Listenoperatoren vorbehalten. Die Ausgabe verwendet bewusst nummerierte Dollar-Platzhalter, die zu PostgreSQL und kompatiblen Bibliotheken passen. Nutzt Ihr Treiber Fragezeichen oder benannte Parameter, passen Sie die Syntax in einem kontrollierten Adapter an und bewahren Sie dabei die zurückgegebene Reihenfolge.

Quoten Sie Bezeichner und prüfen Sie Ihre Richtlinien

Jedes Feld wird als möglicherweise qualifizierter Bezeichner behandelt. Ein Name wie users.created_at wird zu zwei separat gequoteten Segmenten; ein enthaltenes doppeltes Anführungszeichen wird gemäß den üblichen SQL-Regeln verdoppelt. Leere Namen und leere, durch Punkte getrennte Segmente werden abgelehnt. So kann eine Feldzeichenkette nicht mit ungequoteter SQL-Syntax verwechselt werden. Das bedeutet jedoch nicht, dass alle Datenbanksysteme identische Quoting-Regeln besitzen. Prüfen Sie insbesondere bei Systemen ohne doppelte Anführungszeichen die Kompatibilität mit Ihrer Zieldatenbank. Zudem ist Maskierung keine Berechtigung. Wenn ein externer Aufrufer Felder auswählt, ordnen Sie öffentliche Filterschlüssel vor dem Generatoraufruf einer ausdrücklich erlaubten Menge realer Spalten zu. Wenden Sie ebenso fachliche Regeln auf Operatoren an: Ein Berichts-Endpunkt kann Gleichheit und Bereiche erlauben, aber Mustersuchen trotz verfügbarer LIKE-Unterstützung verweigern. Jeder unbekannte SQL-Operator führt zu einem klaren Eingabefehler, anstatt fremde Syntax durchzureichen. Die Funktion arbeitet deterministisch, sendet keine Netzwerkanfragen und gibt ausschließlich Klausel und Parameter zurück.

Filter für einen API-Endpunkt bereitstellen

Wandeln Sie validierte Query-String-Filter in eine Klausel und geordnete Parameter für die Datenbank um.

Eine interne Berichtsabfrage erstellen

Überführen Sie Zeilen eines Berichtsgenerators in AND-Prädikate, ohne Berichtswerte in den SQL-Text einzusetzen.

Testbare Repository-Abfragen erzeugen

Prüfen Sie die deterministische Klausel und das Parameterarray beim Test der Datenzugriffsschicht getrennt.

Was kostet die Nutzung?

Jede API-Anfrage beginnt bei $0.002. Für interaktive Nutzung steht der Browser-Runner bereit.

Führt dieses Werkzeug das SQL aus?

Nein. Es liefert nur eine WHERE-Klausel und ein geordnetes params-Array; Ihre Anwendung übergibt beides an den Treiber.

Welche Platzhaltersyntax wird erzeugt?

Erzeugt werden nummerierte Platzhalter im PostgreSQL-Stil: $1, $2 und so weiter.

Kann ich IN und NOT IN verwenden?

Ja. Geben Sie ein nicht leeres Array als Wert an; der Generator erstellt für jedes Element einen Platzhalter.

Wie werden Nullprüfungen dargestellt?

Verwenden Sie IS NULL oder IS NOT NULL. Diese Operatoren benötigen keinen Wert und ergänzen params nicht.

Ersetzt das Quoting eine Positivliste erlaubter Spalten?

Nein. Quoting schützt die Syntax; die Positivliste bestimmt, welche Spalten und qualifizierten Namen zulässig sind.

Alles auf dieser Seite ist auch per API verfügbar. Dieser Abschnitt richtet sich an Teams, die es in ihre eigenen Systeme einbinden möchten; alle anderen nutzen einfach das Tool oben.

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

Authentifizierung per Bearer-Token. Ein einziger POST stellt die Aufgabe in die Warteschlange; das Ergebnis erhalten Sie per Webhook oder über einen signierten Link.

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"
  }
}

Die API arbeitet asynchron: Sie erhalten sofort eine task_id. Polling ist mit 1 Anfrage pro Sekunde erlaubt.

pro Anfrage$0.002

Der Preis steht auf der Seite – keine Tokens, keine Credits. Fehlgeschlagene Aufgaben werden nicht berechnet.

max_items100
HTTPCodeBedeutung
401unauthorizedDer API-Schlüssel fehlt oder ist ungültig – prüfen Sie den Authorization-Header (Bearer).
402insufficient_balanceIhr Guthaben reicht für diese Aufgabe nicht aus – Aufladungen verfallen nicht.
404unknown_typeUnbekannter Aufgabentyp – prüfen Sie das Feld „type“ gegen den Katalog.
429rate_limitedZu viele Anfragen – warten Sie kurz; Polling ist mit 1 Anfrage pro Sekunde erlaubt.

Vollständige KIT-Dokumentation lesen →