SQL Academy
Premium
Funktionsreferenz

->>

SQL-Konstrukt
Entsprechung in MySQL:

Holt einen Wert aus JSON über einen Objektschlüssel oder eine Array-Elementnummer und gibt ihn als Text zurück.

PostgreSQL 17.5
json ->> key
json ->> index

Parameter

jsonjson | jsonb
Wert vom Typ json oder jsonb
keytext
Objektschlüssel
indexinteger
Nummer des Array-Elements ab 0; eine negative zählt vom Ende

Rückgabewert

String (text); NULL, wenn Schlüssel oder Element fehlen

Beispiele

Wert als Text

PostgreSQL 17.5
SELECT '{"name": "Ann", "age": 30}'::jsonb->>'name' AS name,
	'[10, 20, 30]'::jsonb->>1 AS second_element;
namesecond_element
Ann20

Zahl aus JSON

PostgreSQL 17.5
SELECT '{"price": 100}'::jsonb->>'price' AS price_text,
	('{"price": 100}'::jsonb->>'price')::integer * 2 AS doubled;
price_textdoubled
100200

Ereignisse nach Quelle

PostgreSQL 17.5
SELECT metadata->>'utm_source' AS source,
	COUNT(*) AS events
FROM events
WHERE metadata->>'utm_source' IS NOT NULL
GROUP BY source
ORDER BY events DESC;
sourceevents
email155
tiktok146
google143
facebook136
instagram133
direct124

Details

Anders als bei -> ist das Ergebnis ein einfacher String: Du kannst ihn mit Text vergleichen, danach gruppieren und in andere Typen umwandeln. Ein JSON-null wird zu NULL.

Arithmetik und :: werden vor ->> angewendet, deshalb braucht die Umwandlung des Ergebnisses Klammern: (data ->> 'price')::integer.

Siehe auch