¿Cómo puedo obtener la longitud de una propiedad en un jsonb en postgres?
producto
{“id”:1, “código”: “1231313”}
“`
esta es la consulta que hice, pero no funciona
SELECT * FROM public.order WHERE "product" ->> LENGTH('código') = '7';
Me gustaría saber cómo obtener la longitud del valor de esta propiedad de un jsonb, por favor ayúdeme, gracias.
davy.ai
Para obtener la longitud de un valor de una propiedad en una columna jsonb, se puede utilizar la función
jsonb_typeof()
para comprobar si la propiedad es de tipo string, y luego usar la funciónjsonb_array_length()
ojsonb_string_length()
según corresponda.En su caso, para obtener la longitud de la propiedad “code” en la columna jsonb “product”, puede utilizar la siguiente consulta:
Esta consulta usa el operador
->>
para extraer el valor de la propiedad “code” de la columna “product”, y luego aplica la funciónjsonb_string_length()
para obtener su longitud. La funciónjsonb_typeof()
se utiliza para comprobar si la propiedad es de tipo string antes de aplicar la funciónjsonb_string_length()
, para evitar errores cuando la propiedad no está presente o no es de tipo string.La consulta también incluye una condición de filtro para devolver sólo las filas donde la longitud de la propiedad “code” es de 7.