->>
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 ->> indexParameter
- 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;Zahl aus JSON
PostgreSQL 17.5
SELECT '{"price": 100}'::jsonb->>'price' AS price_text,
('{"price": 100}'::jsonb->>'price')::integer * 2 AS doubled;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;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.