Digamos que tengo una tabla de database con varias columnas comunes como nombre, sexo, edad, …
Además, tengo una columna adicional que utiliza el tipo de datos JSON (disponible en Postgres 9.2) con longitud arbitraria y campos arbitrarios en JSON:
{"occupation":"football"} {"occupation":"football", "hair-colour":"black"} {"hair-style":"curly"}
Usando las nuevas características de Postgres 9.3, quiero devolver todas las filas con ocupación = fútbol, por ejemplo.
Algo así como este pseudo: select * from table where json_field.occupation = football
¿Hay alguna forma de hacer esto?
Si entendí el manual correctamente, puede acceder a los campos JSON con los operadores ->
y ->>
. La consulta se vería así:
SELECT * FROM your_table WHERE json_field ->> 'occupation' = 'football';