Mehr zu: publixx

PQL - Publixx Query Language

PQL – Publixx Query Language

SQL-ähnliche Query-Sprache für Datenfilterung

Eigenschaft Wert
Version 1.0.0
Modul pql-engine.js
Kategorie Datenverarbeitung
Stand Januar 2026

Übersicht

PQL (Publixx Query Language) ist eine SQL-ähnliche Abfragesprache, die speziell für die Filterung und Selektion von Datensätzen in Publixx entwickelt wurde. Sie ermöglicht es, aus großen Datenmengen gezielt die relevanten Datensätze herauszufiltern – ohne Programmierkenntnisse.


Einsatzzweck

PQL kommt in verschiedenen Bereichen von Publixx zum Einsatz:

Bereich Anwendung
DataPicker Interaktive Filterung von Datensätzen im Dialog
Makros Automatisierte Datenfilterung in Workflows
Template Router Bedingte Zuordnung von Templates basierend auf Datenkriterien
API-Steuerung Vorfilterung beim Laden von Daten über URL-Parameter
publixxCONFIG Initiale Datenselektion per pqlFilter-Parameter

Grundsyntax

SELECT [felder] FROM [quelle] WHERE [bedingungen]

Komponenten

Komponente Beschreibung Optional
SELECT Zu selektierende Felder (* für alle) Nein
FROM Datenquelle (Standard: data) Ja
WHERE Filterbedingungen Ja

Minimalform

SELECT *

Ohne WHERE-Klausel werden alle Datensätze zurückgegeben.


Operatoren

Vergleichsoperatoren

Operator Beschreibung Beispiel
= Gleich category = 'Electronics'
!= oder <> Ungleich status != 'deleted'
> Größer als price > 100
< Kleiner als stock < 10
>= Größer oder gleich rating >= 4
<= Kleiner oder gleich price <= 500

Textoperatoren

Operator Beschreibung Beispiel
LIKE Textmuster (mit % als Wildcard) name LIKE 'iPhone%'
NOT LIKE Nicht dem Muster entsprechend name NOT LIKE '%test%'
CONTAINS Enthält Text description CONTAINS 'Pro'

Mengenoperatoren

Operator Beschreibung Beispiel
IN Wert in Liste enthalten status IN ('active', 'pending')
NOT IN Wert nicht in Liste category NOT IN ('test', 'draft')
BETWEEN Wert im Bereich price BETWEEN 100 AND 500

Existenzoperatoren

Operator Beschreibung Beispiel
EXISTS Feld hat einen Wert image EXISTS
NOT EXISTS Feld ist leer/nicht vorhanden description NOT EXISTS

Logische Operatoren

Operator Beschreibung Beispiel
AND Beide Bedingungen müssen wahr sein price > 100 AND stock > 0
OR Eine der Bedingungen muss wahr sein category = 'A' OR category = 'B'
NOT Negiert eine Bedingung NOT status = 'inactive'

Beispiele

Einfache Filterung

-- Alle Produkte einer Kategorie
SELECT * WHERE category = 'Electronics'

-- Produkte über einem Preis
SELECT * WHERE price > 100

-- Aktive Produkte
SELECT * WHERE status = 'active'

Mehrfache Bedingungen

-- Kategorie UND Preis
SELECT * WHERE category = 'Electronics' AND price > 100

-- Kategorie UND Verfügbarkeit
SELECT * WHERE category = 'SUV' AND stock > 0

-- Preisspanne
SELECT * WHERE price >= 40000 AND price <= 60000

Textsuche mit LIKE

-- Name beginnt mit "iPhone"
SELECT * WHERE name LIKE 'iPhone%'

-- Name enthält "Pro"
SELECT * WHERE name LIKE '%Pro%'

-- Name endet mit "Ultra"
SELECT * WHERE name LIKE '%Ultra'

Listen und Bereiche

-- Status in einer Liste
SELECT * WHERE status IN ('active', 'pending', 'review')

-- Kategorien ausschließen
SELECT * WHERE category NOT IN ('test', 'draft', 'deleted')

-- Preisbereich
SELECT * WHERE price BETWEEN 40000 AND 60000

Existenz-Prüfungen

-- Nur Datensätze mit Bild
SELECT * WHERE image EXISTS

-- Nur Datensätze mit Bild UND Preis
SELECT id, name WHERE image EXISTS AND price > 0

-- Datensätze ohne Beschreibung finden
SELECT * WHERE description NOT EXISTS

Komplexe Abfragen

-- Premium-Produkte mit Verfügbarkeit
SELECT * WHERE category = 'Premium' AND price > 1000 AND stock > 0

-- Suchkombination für Fahrzeuge
SELECT * WHERE (category = 'SUV' OR category = 'Limousine') AND price <= 50000

-- Aktive Produkte mit vollständigen Daten
SELECT * WHERE status = 'active' AND image EXISTS AND description EXISTS

Integration in Publixx

DataPicker

Im DataPicker können PQL-Queries interaktiv erstellt werden:

  1. Spaltenfilter setzen (werden zu LIKE-Bedingungen)
  2. Spezialfilter verwenden:
    • * = Wert vorhanden (EXISTS)
    • # = Wert leer (NOT EXISTS)
  3. Button "PQL erzeugen" generiert die Query
  4. Query kann kopiert oder direkt ausgeführt werden

Makros

In der Makro-Engine kann PQL für automatisierte Datenfilterung verwendet werden:

{
  "action": "data-filter",
  "params": {
    "query": "SELECT * WHERE category = 'Electronics' AND price > 100"
  }
}

publixxCONFIG

Initiale Filterung beim Laden:

{
  "pqlFilter": "price > 50000 AND category = 'Premium'"
}

API-Referenz

PqlEngine.parseQuery(query)

Parst eine PQL-Query und gibt die Struktur zurück.

const parsed = PqlEngine.parseQuery("SELECT * WHERE price > 100");
// → { fields: ['*'], where: 'price > 100', source: 'data' }

PqlEngine.executeQuery(query)

Führt eine PQL-Query auf den aktuellen Daten aus.

const results = await PqlEngine.executeQuery("SELECT * WHERE status = 'active'");
console.log(`${results.length} Datensätze gefunden`);

Best Practices

Feldnamen

Performance


Fehlerbehandlung

Fehler Ursache Lösung
Leeres Ergebnis Kein Datensatz erfüllt Bedingungen Bedingungen prüfen/lockern
Syntax-Fehler Ungültige Query-Struktur Klammern und Anführungszeichen prüfen
Feldname nicht gefunden Tippfehler oder fehlendes Feld Feldnamen aus Datenstruktur übernehmen

Vergleich mit SQL

Feature PQL SQL
SELECT
FROM ✓ (optional)
WHERE
ORDER BY
GROUP BY
JOIN
Subqueries

PQL ist bewusst auf Filterung beschränkt – für Sortierung und Gruppierung werden andere Publixx-Funktionen verwendet.


© incoxx GmbH – Publixx Documentation