->>
Construcción SQL
Equivalente en MySQL:
Extrae un valor de un JSON por una clave de objeto o un número de elemento de array y lo devuelve como texto.
PostgreSQL 17.9
json ->> key
json ->> index- json
- Valor de tipo json o jsonbjson | jsonb
- key
- Clave del objetotext
- index
- Número del elemento del array desde 0; uno negativo cuenta desde el finalinteger
Valor devuelto
Cadena (text); NULL si no existe la clave o el elemento
Ejemplos
Valor como texto
PostgreSQL 17.9
SELECT '{"name": "Ann", "age": 30}'::jsonb->>'name' AS name,
'[10, 20, 30]'::jsonb->>1 AS second_element;Número de un JSON
PostgreSQL 17.9
SELECT '{"price": 100}'::jsonb->>'price' AS price_text,
('{"price": 100}'::jsonb->>'price')::integer * 2 AS doubled;Eventos por origen
PostgreSQL 17.9
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;Detalles
A diferencia de ->, el resultado es una cadena simple: puedes compararla con texto, agrupar por ella y convertirla a otros tipos. Un null de JSON se convierte en NULL.
La aritmética y :: se aplican antes que ->>, así que para convertir el resultado hacen falta paréntesis: (data ->> 'price')::integer.