ForHosting KIT · Entwickler-Tools

Parametrisierte SQL-WHERE-Klausel aus Filtern erstellen

Machen Sie aus Suchfiltern eine sichere WHERE-Klausel: Status active, Alter ab 21 und Rolle admin oder editor werden zu Spaltennamen in Anführungszeichen mit nummerierten Platzhaltern, während die Werte active, 21, admin und editor in einer eigenen geordneten Liste stehen. Kostenlos in Ihrem Browser.

  • Kostenlos
  • Läuft in Ihrem Browser
  • Ohne Anmeldung
  • Ihre Daten bleiben auf Ihrem Gerät
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.

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. 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.

Fügen Sie die Klausel in eine größere SELECT-, UPDATE- oder DELETE-Anweisung ein und übergeben Sie params an einen kompatiblen Datenbanktreiber. 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.

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. 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.

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.

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.

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.

Wie werden Prüfungen auf leere Werte wie IS NULL behandelt?

IS NULL und IS NOT NULL brauchen keinen Wert und keinen Platzhalter, weil ihre SQL-Formulierung nichts zum Ausfüllen enthält. Jeder andere Vergleich nimmt genau einen Wert, und ein fehlender Wert wird abgelehnt, statt unvollständiges SQL zu erzeugen.

Meine Datenbank nutzt Fragezeichen – kann ich das Ergebnis trotzdem verwenden?

Ja, mit einer kleinen Übersetzung. Die Klausel nutzt nummerierte Dollar-Platzhalter, wie sie zu PostgreSQL passen. Erwartet Ihre Bibliothek Fragezeichen oder benannte Marker, wandeln Sie sie an einer kontrollierten Stelle um und behalten die Reihenfolge der Werte bei.

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.

Erstellen Sie SQL-Strukturen ohne verkettete Werte

Er liefert eine parametrisierte SQL-WHERE-Klausel mit Positionsparametern im PostgreSQL-Stil wie $1 und $2 sowie ein params-Array in exakt passender Reihenfolge. Der Generator führt keine Abfrage aus, stellt keine Datenbankverbindung her, untersucht kein Schema und entscheidet nicht, welche Spalten ein Aufrufer verwenden darf.

Verstehen Sie Operatoren, Parameter und Nullprüfungen

Akzeptiert werden skalare JSON-Werte einschließlich Zeichenketten, Zahlen, boolescher Werte und null; Arrays sind den beiden Listenoperatoren vorbehalten.

Quoten Sie Bezeichner und prüfen Sie Ihre Richtlinien

Ein Name wie users.created_at wird zu zwei separat gequoteten Segmenten; ein enthaltenes doppeltes Anführungszeichen wird gemäß den üblichen SQL-Regeln verdoppelt.

Filter für einen API-Endpunkt bereitstellen

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

Was kostet die Nutzung?

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

Welche Platzhaltersyntax wird erzeugt?

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

Vollständige KIT-Dokumentation lesen →