Zum Inhalt springen

Prüft, ob ein angegebener Pfad in JSON-Daten existiert.

func.json_path_exists(<json_data>, <json_path_expression)
func.json_path_exists(parse_json('{"a": 1, "b": 2}'), '$.a ? (@ == 1)'), func.json_path_exists(parse_json('{"a": 1, "b": 2}'), '$.a ? (@ > 1)')
┌─────────────────────────────┐
│ Item 1 │ Item 2 │
├────────────────┼────────────┤
│ True │ False │
└─────────────────────────────┘
JSON_PATH_EXISTS(<json_data>, <json_path_expression>)
  • json_data: Gibt die JSON-Daten an, in denen Sie suchen möchten. Es kann ein JSON-Objekt oder ein Array sein.

  • json_path_expression: Gibt den Pfad an, den Sie in den JSON-Daten prüfen möchten. Er beginnt an der Wurzel der JSON-Daten, die durch $ dargestellt wird. Im Ausdruck können Sie auch Bedingungen angeben, um die Ergebnisse zu filtern; dabei verweist @ auf den aktuell ausgewerteten Knoten oder das aktuell ausgewertete Element.

Die Funktion gibt Folgendes zurück:

  • true, wenn der angegebene JSON-Pfad (und gegebenenfalls die Bedingungen) in den JSON-Daten existiert.
  • false, wenn der angegebene JSON-Pfad (und gegebenenfalls die Bedingungen) in den JSON-Daten nicht existiert.
  • NULL, wenn json_data oder json_path_expression NULL oder ungültig ist.
SELECT JSON_PATH_EXISTS(parse_json('{"a": 1, "b": 2}'), '$.a ? (@ == 1)');
----
true
SELECT JSON_PATH_EXISTS(parse_json('{"a": 1, "b": 2}'), '$.a ? (@ > 1)');
----
false
SELECT JSON_PATH_EXISTS(NULL, '$.a');
----
NULL
SELECT JSON_PATH_EXISTS(parse_json('{"a": 1, "b": 2}'), NULL);
----
NULL