开发笔记

  • 首页
  • 工具箱
三味线的博客
  1. 首页
  2. SQL
  3. 正文

PGSQL中的Json包含

2021-01-09 143点热度 0人点赞 0条评论

表rabbits数据如下:

idinfo
1{"name":"Henry", "food":["lettuce","carrots"]}
2{"name":"Herald","food":["carrots","zucchini"]}
3{"name":"Helen", "food":["lettuce","cheese"]}

检查food数组是否包含某字符串:

SELECT info->>'name' FROM rabbits WHERE info->'food' @> '"carrots"'

注意引号,PGSQL里JSONB中的元素都是字符串,如:boolean: 'true', string: '"hello"', integer: '123',上面的SQL应该是这样的:

SELECT info->>'name' FROM rabbits WHERE (info->'food')::JSONB @> '"carrots"'::JSONB

另一种方式:存在操作符,检查一个字符串是否出现在JSONB数据顶层对象中

SELECT info->>'name' FROM rabbits WHERE (info->'food')::JSONB ? 'carrots'

另另一种方式:直接当做字符串来检查

SELECT info->>'name' FROM rabbits WHERE info->>'food' LIKE '%"carrots"%'
本作品采用 知识共享署名 4.0 国际许可协议 进行许可
标签: pgsql
最后更新:2021-01-09

Clownce

不吃咸鱼的猫

点赞
< 上一篇
下一篇 >

文章评论

取消回复

Captcha Code

COPYRIGHT © 2020 Clownce. ALL RIGHTS RESERVED.

THEME KRATOS MADE BY VTROIS

蜀ICP备18010095号