android json字符串转成json对象_如何在MySQL的JSON对象上使用WHERE in子句执行SELECT?

MySQL在版本5.7.8中引入了JavaScript Object Notation(JSON)数据类型,从而可以更有效地访问JSON编码的数据。在幕后,MySQL会将存储在JSON列中的JSON文档转换为允许快速读取对文档元素的内部格式。这样可以避免服务器从文本表示形式转换JSON值以读取它们。另一个好处是,二进制格式的结构使得可以直接通过键或数组索引检索子对象,而无需读取文档中的所有值。

为了演示如何在MySQL中查询JSON列,我在数据库开发和管理客户端Navicat for MySQL中创建了一个表包含产品数据。该表的最后一列- 属性-使用新的json 数据类型:

eb596bb9e6f7e0a0f1da1c1c821a2cb3.png

这是表的内容:

84fdbcc30cc513cb8496a6ff991f390d.png

从数据类型下拉列表中选择文本,将在屏幕底部打开一个编辑器,其中包括语法突出显示和JSON格式。

JSON查询示例

与大多数其他数据类型相比,查询JSON列要稍微复杂一些,因为JSON文档可以表示多种数据类型。因此,MySQL提供了几个有用的JSON函数来简化该过程。

例如,我们可以使用JSON_EXTRACT()函数来显示具有端口的产品。JSON_EXTRACT()接受JSON字符串和JSON路径表达式作为参数,并从JSON文档返回数据。美元符号($)引用文档根,而句点(。)表示对象级别。

语法如下:

JSON_EXTRACT(json_doc,path [,path] ...)

json_docJSON文档在哪里,是path要返回的值的路径。

以下查询返回ports属性:

d9c8ec780d8c388bb93f418d36965b9c.png

如果要删除具有空值的行,则只需添加WHERE子句,如下所示:

24fee80da7f5be7221be93b4bf148965.png

使用JSON_SEARCH()

另一个有用的函数是JSON_SEARCH()。它返回JSON文档中给定字符串的路径,并接受一堆输入参数:

JSON_SEARCH(json_doc,one_or_all,search_str [,escape_char [,path] ...])

是否想找到带有50英寸屏幕的显示器?这是执行此操作的查询:

c2071c79f9a16a048191cc98eee1c87d.png

试试这些功能之一。如果它们对您不起作用,请查看MySQL文档。还有许多其他JSON函数!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值