MySQL JSON Pfad Tester
Testen Sie MySQL JSON_EXTRACT Pfade interaktiv mit Ihren JSON-Daten
Extrahierter Wert
Typ:
MySQL JSON Pfad Tester
Testen und validieren Sie MySQL JSON-Pfadausdrücke, bevor Sie sie in Ihren Abfragen verwenden. Dieses Tool hilft Ihnen zu verstehen, wie JSON_EXTRACT() und verwandte JSON-Funktionen mit Ihren Daten funktionieren.
Was ist JSON_EXTRACT?
JSON_EXTRACT() ist eine MySQL-Funktion, die Daten aus JSON-Spalten mithilfe von Pfadausdrücken extrahiert. Sie ist unverzichtbar bei der Arbeit mit JSON-Daten, die in MySQL-Datenbanken gespeichert sind.
Grundlegende Syntax
SELECT JSON_EXTRACT(spaltenname, '$.pfad.zum.wert') FROM tabellenname;
Pfad-Syntax
Wurzelobjekt
$- Gibt das gesamte JSON-Dokument zurück
Objekt-Eigenschaften
$.key- Zugriff auf eine Top-Level-Eigenschaft$.nested.property- Zugriff auf verschachtelte Eigenschaften$['key-with-dash']- Zugriff auf Schlüssel mit Sonderzeichen
Array-Elemente
$.array[0]- Erstes Element (nullbasiert)$.array[2]- Drittes Element$.users[0].name- Eigenschaft eines Array-Elements
Wildcards
$[*]- Alle Array-Elemente$[*].id- Bestimmte Eigenschaft aus allen Elementen extrahieren
Häufige Anwendungsfälle
E-Commerce Produktattribute
{
"name": "Laptop",
"specs": {
"cpu": "Intel i7",
"ram": "16GB"
},
"tags": ["electronics", "computers"]
}
Pfade:
$.name→ “Laptop”$.specs.cpu→ “Intel i7”$.tags[0]→ “electronics”
Benutzereinstellungen
{
"theme": "dark",
"notifications": {
"email": true,
"push": false
}
}
Pfade:
$.theme→ “dark”$.notifications.email→ true
Verschachtelte Arrays
{
"orders": [
{"id": 1, "total": 99.99},
{"id": 2, "total": 149.99}
]
}
Pfade:
$.orders[0].id→ 1$.orders[1].total→ 149.99
MySQL JSON-Funktionen
Nachdem Sie Ihre Pfade getestet haben, verwenden Sie sie mit diesen MySQL-Funktionen:
JSON_EXTRACT()
Werte aus JSON-Dokumenten extrahieren:
SELECT JSON_EXTRACT(data, '$.user.email') FROM users;
JSON_SEARCH()
Den Pfad zu einem Wert finden:
SELECT JSON_SEARCH(data, 'one', 'electronics', NULL, '$.tags[*]');
JSON_CONTAINS()
Prüfen, ob ein Wert existiert:
SELECT * FROM products WHERE JSON_CONTAINS(tags, '"electronics"');
JSON_SET()
Werte aktualisieren oder einfügen:
UPDATE products
SET data = JSON_SET(data, '$.price', 29.99)
WHERE id = 1;
Tipps
- Strings in Pfaden immer in Anführungszeichen: Verwenden Sie
$.keynicht$key - Arrays sind nullbasiert: Erstes Element ist
[0], nicht[1] - Komplexe Pfade zuerst testen: Verwenden Sie dieses Tool, bevor Sie Abfragen schreiben
- NULL-Werte behandeln:
JSON_EXTRACT()gibt NULL zurück, wenn der Pfad nicht existiert - JSON_UNQUOTE() verwenden: Anführungszeichen aus extrahierten String-Werten entfernen
Performance-Überlegungen
-
Virtuelle Spalten indizieren: Generierte Spalten mit Indizes für häufig abgefragte Pfade erstellen:
ALTER TABLE products ADD COLUMN price_extracted DECIMAL(10,2) AS (JSON_EXTRACT(data, '$.price')), ADD INDEX idx_price (price_extracted); -
Wildcards in WHERE vermeiden: Spezifische Pfade sind viel schneller als Wildcards
-
Häufig abgerufene Daten normal speichern: JSON-Spalten nicht übermäßig verwenden
MySQL Versionsanforderungen
- JSON-Unterstützung: MySQL 5.7.8+
- JSON-Funktionen: Die meisten Funktionen verfügbar in MySQL 5.7+
- Verbesserte Performance: MySQL 8.0+ hat erhebliche JSON-Verbesserungen