码迷,mamicode.com
首页 > 数据库 > 详细

MySQL中的JSON

时间:2017-07-07 10:15:48      阅读:235      评论:0      收藏:0      [点我收藏+]

标签:mysql   json   

MySQL 5.7.7开始,支持了JSON类型。

CREATE TABLE IF NOT EXISTS `spss`.`variable` (
  `name` VARCHAR(512) NOT NULL,
  `type` JSON NOT NULL,
  `width` INT NOT NULL,
  `decimals` INT NOT NULL,
  `label` VARCHAR(512) NOT NULL,
  `values` JSON NOT NULL,
  `missing` JSON NOT NULL,
  `columns` INT NOT NULL,
  `align` ENUM(‘Left‘, ‘Right‘, ‘Center‘) NOT NULL,
  `measure` ENUM(‘Scale‘, ‘Ordinal‘, ‘Norminal‘) NOT NULL,
  `role` ENUM(‘Input‘, ‘Target‘, ‘Both‘, ‘None‘, ‘Partation‘, ‘Split‘) NOT NULL,
  PRIMARY KEY (`name`))
ENGINE = InnoDB;

insert into variable values(‘S1‘, ‘{"Numeric":"8:0"}‘, 8, 0, ‘您的性别?‘, ‘{"1":"男","2":"女"}‘, ‘{"Missing":"None"}‘,8,‘Left‘,‘Nominal‘, ‘Input‘);
insert into variable values(‘S2‘, ‘{"Numeric":"8:0"}‘, 8, 0, ‘您的实际年龄?‘, ‘{}‘, ‘{}‘,8,‘Left‘,‘Nominal‘, ‘Input‘);

select * from variable where JSON_Extract( `values`,‘$."1"‘) = ‘男‘;
select * from variable where `values`->‘$."1"‘ = ‘男‘;
select * from variable where measure = ‘Nominal‘;

注意的几点:

  1. ENUM类型的用法。

  2. JSON类型的用法。

  3. JSON类型中,关键字如果是数字:‘{"1":"男","2":"女"}‘,在查询时要用双引号把数字括起来:`values`->‘$."1"‘

  4. 列名是SQL关键词时,用“`”字符包裹列名,如上面的例子里的`values`。



本文出自 “GONE WITH THE WIND” 博客,请务必保留此出处http://h2appy.blog.51cto.com/609721/1945105

MySQL中的JSON

标签:mysql   json   

原文地址:http://h2appy.blog.51cto.com/609721/1945105

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!