MySQL:JSON语法说明

2023-12-13 09:33:55

一、SELECT JSON_OVERLAPS('[5261,5265]', '[5265,5278,1000]') -- 0不存在 1存在(比较两个数组是否有匹配)


二、SELECT JSON_CONTAINS('[1,2,3,4,5,6,7]', ?CAST(4 AS CHAR)) -- key是字符串类型(比较字符串是否在数组中存在)


三、JSON_EXTRACT(eas.question_a, '$[*].id')? -- 提取JSON中的字段或者对象

四、JSON_TABLE -- 将表中的JSON字段转成表,另外JSON_TABLE 可以多层引用,用法:


SELECT 
	eas_opt.*
FROM exam_an eas
, json_table(
	eas.qu,
	"$[*]"
	COLUMNS(
        id VARCHAR(255) PATH "$.id",
        second double PATH "$.second",
				opt json PATH "$.opt"
    )
	
)eas_opt

五、以下是json类型的数组和对象的操作,可参考:https://baijiahao.baidu.com/s?id=1719636094470813418&wfr=spider&for=pc

  1. json_insert就是向json中插入,如果不存在则插入,存在则忽略

  2. json_replace就是替换json中的项,如果不存在则忽略,存在则替换

  3. json_set结合前面俩个,存在则替换,不存在则插入,子节点插入问题:Mysql中关于JSON_SET更新或追加子节点属性失败的解决办法_mysql中关于json_set多层级更新-CSDN博客

  4. json_merge_patch多个json进行合并,相同键名,后面的覆盖前面的,如果值是对象,则递归进行处理

  5. json_merge_preserve多个json进行合并,相同键名,则键值组成新的对象

  6. json_remove移除掉json某一项

文章来源:https://blog.csdn.net/qq_16946803/article/details/134903446
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。