JSON_EXTRACT无法用于嵌套的json数据

时间:2018-07-16 12:15:47

标签: mysql sql json select

我想从我的表中选择json数据,以便显示我的表数据如下:

user_id:    1

metaname:  mymetaname

meta_value:    a:1:{i:0;a:10:{s:7:"street1";s:36:"shiv plaza";s:4:"city";s:5:"surat";s:5:"state";s:7:"gujarat";s:7:"zipcode";s:6:"395010";s:14:"dollet_country";s:2:"IN";s:10:"tostreet1l";s:5:"surat";s:7:"tocityl";s:5:"surat";s:8:"tostatel";s:5:"surat";s:10:"tozipcodel";s:6:"395000";s:17:"todollet_countryl";s:2:"IN";}}

我正在尝试运行此查询:

SELECT user_id,JSON_EXTRACT(meta_value, '$."city"') FROM  `usermetatable`

但是显示错误:

  

[功能json_extract的参数1中的JSON文本无效:“无效   值。”位于位置0。]

我在表中的json数据无法更改为其他数据,并且肯定是正确的JSON,有人可以纠正以上查询吗?

1 个答案:

答案 0 :(得分:3)

那不是JSON数据。它看起来像一个序列化的PHP对象。参见http://php.net/serialize

没有MySQL函数可以从该序列化对象中提取字段。您应该将整个对象提取到PHP应用程序中,并在其上调用unserialize(),然后访问对象成员。