Saltar al contenido

¿Cómo consultar una columna json para objetos vacíos?

este problema se puede resolver de variadas maneras, pero nosotros te dejamos la resolución más completa en nuestra opinión.

Solución:

Hay sin operador de igualdad (o desigualdad) para el tipo de datos json en su conjunto, porque la igualdad es difícil de establecer. Considerar jsonb en Postgres 9.4 o posterior, donde esto sea posible. Más detalles en esta respuesta relacionada en dba.SE (último capítulo):

  • Cómo eliminar elementos conocidos de un JSON[] array en PostgreSQL?

SELECT DISTINCT json_column ... o ... GROUP BY json_column falla por la misma razón (sin operador de igualdad).

Convirtiendo ambos lados de la expresión a text permite = o <> operadores, pero eso normalmente no es confiable ya que hay muchas representaciones de texto posibles para el mismo Valor JSON.

Sin embargopor este caso particular (objeto vacío) funciona bien:

select * from test where foo::text <> ''::text;

A partir de PostgreSQL 9.5 este tipo de consulta con datos JSON no es posible. Por otro lado, estoy de acuerdo en que sería muy útil y creé una solicitud para ello:

https://postgresql.uservoice.com/forums/21853-general/suggestions/12305481-check-if-json-is-empty

Siéntase libre de votarlo, ¡y con suerte se implementará!

JSON vacío array [] también podría ser relevante.

Entonces esto podría funcionar para ambos [] y :

select * from test where length(foo::text) > 2 ;

Sección de Reseñas y Valoraciones

Si posees alguna incertidumbre y forma de acrecentar nuestro reseña eres capaz de dejar una explicación y con gusto lo estudiaremos.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *