Referencia de funciones

->>

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 jsonb
json | jsonb
key
Clave del objeto
text
index
Número del elemento del array desde 0; uno negativo cuenta desde el final
integer

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;
namesecond_element
Ann20

Número de un JSON

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

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;
sourceevents
email155
tiktok146
google143
facebook136
instagram133
direct124

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.

Véase también