MySQL插入json问题
16lz
2021-12-25
在MySQL5.7.8之后开始支持一种可高效获取JSON文本中数据的原生JSON类型,该类型具有以下优点:
- 存储时自动验证,验证不通过将报错
- 更好的存储结构。采用一种针对告诉读取JSON文本元素的内部结构进行存储。新的服务器是以二进制的格式读取一个JSON文本,而不是以字符串格式读取然后进行转换。这种二进制格式允许服务器在文本中通过键或者数组索引获取其子对象(嵌套数组)而不需要读取全部值
另外,系统对JSON格式做了一些限制:
- JSON文本的最大长度取决有系统常量:max_allowed_packet。该值仅在服务器进行存储的时候进行限制,在内存中进行计算的时候是允许超过该值的。
- JSON列不可有默认值
- JSON列与其他二进制类型列一样是无法创建索引。但是可以从JSON列中所存储的文本中某些表列值进行创建索引。MySQL最优控制器同样在通过JSON表达创建的索引中进行查询。
在插入json数据的时候遇到的问题
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘{
insert into `players` (`id`,`player_and_games`) values(1,{ "id":1, "name":"aaa", "games_played":{ "Battlefiedld":{ "weapon":"adsf", "level":20 }, "Crazy":{ "weapon":"adsf", "level":20 } }})
insert into `players` (`id`,`player_and_games`) values(1,'{ "id":1, "name":"aaa", "games_played":{ "Battlefiedld":{ "weapon":"adsf", "level":20 }, "Crazy":{ "weapon":"adsf", "level":20 } }}')
更多相关文章
- MySQL系列多表连接查询92及99语法示例详解教程
- Linux下MYSQL 5.7 找回root密码的问题(亲测可用)
- MySQL 什么时候使用INNER JOIN 或 LEFT JOIN
- Android(安卓)10 定位问题,获取NMEA(支持5.0~10.0)
- mybatisplus的坑 insert标签insert into select无参数问题的解决
- 关于Android(安卓)Studio3.2新建项目Android(安卓)resource link
- Android软键盘适配问题
- SlidingMenu和ActionBarSherlock结合做出出色的App布局,Facebook
- android解决坚屏拍照和保存图片旋转90度的问题,并兼容4.0