MySQL JSON怎么进行格式检索

2017-01-06 11:06:09文章来源:126下载热度:35

  MySQL labs版本开始InnoDB存储引擎已经原生支持JSON格式,该格式不是简单的BLOB类似的替换。下面我们来详细探讨下吧

  软件名称:mysql下载

  软件大小:11.10MB

  MySQL5.7版本开始支持JSON格式,在创建表时,可以指定列表的数据类型为JSON,但是如何在JSON格式上创建索引呢??

  本人做了一个简单测试。

  第一步:建立一个包含JSON类型的表:

  CREATE TABLE json_test` (

  id` int (8) NOT NULL AUTO_INCREMENT,

  content` json NOT NULL ,

  PRIMARY KEY (`id`)

  ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

  第二步:初始化数据

  insert into json_test(content) value( '{"name":"zhangsan","age":18}' );

  insert into json_test(content) value( '{"name":"lisi","age":19}' );

  insert into json_test(content) value( '{"name":"wangwu","age":20}' );

  第三步:查询JSON类列的数据

  select json_extract(content, '$.name' ) from json_test where json_extract(content, '$.name' )= "zhangsan" ;

  通过expain分析改查询语句,发现其走全表扫描

  


  在网上查询资料,得知如果要在JSON列上进行检索,需要对检索的key创建虚拟列,然后再虚拟列上创建索引

  第四步:在content列上,对"name"建立虚拟列

  ALTER TABLE json_test ADD name_virtual varchar (32) GENERATED ALWAYS AS (json_extract(content, '$.name' )) VIRTUAL;


编辑:莹莹

友情链接

庙宇开光仪式程序  | 运动会入场式解说词  | 黑执事同人漫画  | 团建ppt模板  | 中秋遐想  | 毛薯养殖  | 邪恶片段  | 未中标感谢函  | 内涵图片鬼故事  | 鸡肉怎么煮才会滑  | 舞台动态背景ppt  | 潮人打扮  |