美文网首页
mysql中json_contains和json_search的

mysql中json_contains和json_search的

作者: PENG先森_晓宇 | 来源:发表于2021-12-30 20:17 被阅读0次

共同点

  • json数组和json对象都可以使用
  • 俩方法都是用来确定某个字符串是否在该json中

差异

  • 俩方法的参数和返回值不同,也是该文章重点介绍的。

json_contains

json_contains参数需要指定path,path如果不存在返回Null,path存在但是指定值不存在返回0,指定值存在则返回1。该函数需要注意的地方请查看该文章

mysql> select json_contains(remarks,'"xiaoyu"','$.name') from order_remarks;
+--------------------------------------------+
| json_contains(remarks,'"xiaoyu"','$.name') |
+--------------------------------------------+
| NULL                                       |
| NULL                                       |
| NULL                                       |
|                                          1 |
|                                          1 |
|                                          1 |
| NULL                                       |
| NULL                                       |
|                                          0 |
+--------------------------------------------+

json_search

json_search(json_doc,one_or_all,search_str [,escape_char [, path]])
和json_contains相比,该函数不需要指定具体的path,更像是like一样的模糊查询。
如果查询的str存在,则返回具体的path,如果不存在则返回null。

mysql> select json_search(remarks,'one','xiaoyu') from order_remarks;
+-------------------------------------+
| json_search(remarks,'one','xiaoyu') |
+-------------------------------------+
| NULL                                |
| NULL                                |
| NULL                                |
| "$.name"                            |
| "$.name"                            |
| "$.name"                            |
| NULL                                |
| NULL                                |
| NULL                                |
+-------------------------------------+

注意
json_search()只能搜索字符串,而不能搜索整形

比如 str字段值为{"name":"xiaoyu","old":12}

mysql> select json_search(str,'one',12) from order_remarks;
+-------------------------------------+
| json_search(remarks,'one','xiaoyu') |
+-------------------------------------+
| NULL                                |
| NULL                                |
| NULL                                |
| NULL                                |
| NULL                                |
| NULL                                |
| NULL                                |
| NULL                                |
| NULL                                |
+-------------------------------------+

总结

json_contains适合用于指定path的查询,而json_search适合模糊查询,比如说看下json中是否有'hello'这个字符串,而并不需要知道它在什么位置。

相关文章

  • mysql中json_contains和json_search的

    共同点 json数组和json对象都可以使用 俩方法都是用来确定某个字符串是否在该json中 差异 俩方法的参数和...

  • MySQL的json数据类型常用操作

    数据库表和数据 JSON_SEARCH 总结:JSON_SEARCH(json_val, 'one', '6') ...

  • sql语句(mysql中json_contains、json_a

    1、用科大讯飞语音识别到的已经中文分词的文字,例:“我”“想”“销”“存单”2、根据上面语音识别出来的多个关键字,...

  • 关于Mysql json格式数据的查询一些记录

    select * from nw_wechat_order where JSON_CONTAINS(goo...

  • 005——MySQL

    基础 配置phpmyadmin MySQL重启 PHP中操作MySQL的基本代码和流程 测试 循环MySQL 数据...

  • MySql中@ 和 @@的区别

    @@与@的区别 1.查看当前会话隔离级别 2.查看系统当前隔离级别 3.设置当前会话隔离级别 4.设置系统当前隔离...

  • MYSQL中 != 和 is not的区别

    该语句只能查出第1行,也就是mike; 该语句可以查出第1行和第3行,也就是mike和NULL; 总结:也就是说,...

  • MySQL 变量的定义

    MySql中的变量定义 根据mysql手册,mysql的变量分为两种:系统变量和用户变量。但是在实际使用中,还会遇...

  • MariaDB

    1:MariaDB和MySQL差不多是mysql的一个分支,完全兼容mysql的命令。2:centos 7 中自带...

  • Hive的安装和部署

    MySQL的安装和部署 MySQL下载 hive的元数据一般存储在MySQL中,所以我们需要先安装一个MySQL:...

网友评论

      本文标题:mysql中json_contains和json_search的

      本文链接:https://www.haomeiwen.com/subject/olkwqrtx.html