如何在mysql上的JSON列中添加值?

时间:2017-09-27 11:03:35

标签: mysql json

我的

{
"artistId": null,
"memberId": "e7dbb746-a243-4247-9c27-fd184a81bd1a",
"displayName": "yoav alias",
"location": {
"value": "Rock Shilde, NY",
"publishable": true
},
"socialLinks": [
{
  "value": {
    "socialNetwork": "facebook",
    "link": "https://www.facebook.com/"
  },
  "publishable": true
},
{
  "value": {
    "socialNetwork": "twitter",
    "link": null
  },
  "publishable": true
},
{
  "value": {
    "socialNetwork": "google",
    "link": null
  },
  "publishable": true
},
{
  "value": {
    "socialNetwork": "soundcloud",
    "link": null
  },
  "publishable": true
}
],
"instruments": {
"value": [

],
"publishable": true
},
"favorites": {
"value": [

],
"publishable": true
},
"bio": {
"value": null,
"publishable": true
}

我想做的就是将值插入"收藏夹" ......我搜索了网页

退出了很多,但没有运气。我基本上都在寻找正确的mySQL

这样做的语法。虽然该列设计为JSON,但它是定义

作为MEDIUMTEXT。不过,我想在这个专栏中添加值,因为某些原因这是一个棘手的任务。我试过了 -

UPDATE display_profiles JSON_INSERT(display_profile, '$.favorites', 
'red') WHERE member_id = ?   

但我得到一个sql语法异常......任何想法?

1 个答案:

答案 0 :(得分:1)

JSON数据类型已添加到5.7.8版本的mysql中。因此它在您的mysql服务器中不可用。您需要将服务器更新为更新版本。

如果要使用JSON,请首先将列数据类型从MEDIUMTEXT更改为JSON。

此外,您的查询无效。更新查询的一般形式为UPDATE table SET field = expression WHERE condition。你遗失了SET display_profile =