必须要5.7以上版本才能使用
写在开头
mysql json 的功能很强大,只是用来当一个储存数据的字段 就没什么意义了。
使用proto做交互的话,只要JSON 写得好 用proro.Unmarshal() 就可以很方便的转换类型 可以精简很多代码
JSON path 是以 $ 开头,之后就是JSON的层级使用。$
$[0].name
$[0][1]
//*表示所有
$[*]
数据比较
json中的数据可以用 =, , >=, <>, !=, and <=> 进行比较。
json里的数据类型是多样的,在不同类型之间进行比较时,高优先级的要大于低优先级的(可以用JSON_TYPE()函数查看类型)。
优先级从高到低如下:
BLOB > BIT > OPAQUE > DATETIME > TIME > DATE > BOOLEAN > ARRAY > OBJECT > STRING > INTEGER >DOUBLE > NULL
函数整理
创建函数JSON_ARRAY: JSON_ARRAY(val1,val2,val3…)
JSON_OBJECT: 生成一个包含指定K-V对的json object。如果有key为NULL或参数个数为奇数,则抛出异常。
JSON_QUOTE:JSON_QUOTE(json_val)