1. 程式人生 > 資料庫 >MySQL插入json問題

MySQL插入json問題

在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
    }
  }
})

存在問題,json沒有用引號,正確的方式如下

insert into `players` (`id`,'{
  "id":1,"level":20
    }
  }
}')

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對我們的支援。如果你想了解更多相關內容請檢視下面相關連結