MySQL的json查询之json_keys、json_object、json_overlaps、json_pretty

MySQL的json查询之json_keys、json_object、json_overlaps、json_pretty 【MySQL的json查询之json_keys、json_object、json_overlaps、json_pretty】MySQL的json查询之json_keys、json_object、json_overlaps、json_pretty
文章图片

  1. json_keys:获取json对象的key值组成的数组
  2. json_object:创建一个json对象
  3. json_overlaps:对比的俩个json有相同的键值对或者数组元素即可
  4. json_pretty:格式化json,符合人类的阅读习惯
  5. json_quote:将字符串引用为json值,换句话说就是把字符串处理成为带双引号的值
  • 数据表
    MySQL的json查询之json_keys、json_object、json_overlaps、json_pretty
    文章图片
json_keys
获取json对象中的key值组成的数组
  • 例一
    select json_keys(info) from member;
    MySQL的json查询之json_keys、json_object、json_overlaps、json_pretty
    文章图片
json_object
创建json对象,配合json_contains使用可以很好的进行查询
  • 例一
    select * from member where json_contains(info, json_object('age', 27));
    MySQL的json查询之json_keys、json_object、json_overlaps、json_pretty
    文章图片

    说明:json_object组成{"age":27},查询info中是否有这个键值对
json_overlaps
对比俩个json,如果有一个键值对或者数组元素则返回 true,否则返回 false
  • 例一
    select * from member where json_overlaps(info, '{"sex":1,"age":27}');
    MySQL的json查询之json_keys、json_object、json_overlaps、json_pretty
    文章图片

    info{"sex":1,"age":27}有相同的键值对{"age":27}
json_pretty
格式化json,用处不大,主要是查询出符合人类阅读的格式
  • 例一
    select json_pretty(info) from member where id = 1;
    MySQL的json查询之json_keys、json_object、json_overlaps、json_pretty
    文章图片

    我是没有想到这个函数有什么使用场景
json_quote
将字符串引用为json值,也就是把字符串转为带双引号的字,跟 json_unquote相反
  • 例一
    select json_quote(info) from member;
    MySQL的json查询之json_keys、json_object、json_overlaps、json_pretty
    文章图片

    没有发现有什么使用场景
留言 点击留言

    推荐阅读