Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Mysql 5.7中解析JSON列数组数据_Mysql_Sql_Arrays_Json_Unnest - Fatal编程技术网

在Mysql 5.7中解析JSON列数组数据

在Mysql 5.7中解析JSON列数组数据,mysql,sql,arrays,json,unnest,Mysql,Sql,Arrays,Json,Unnest,我有一些这样的数据 Product Siz Color RFIDs GO1199 5XL WHIT "[\"300ED89F335000B333B8CA8D\",\"300ED89F335000B333B8C5F3\",\"E2009A4050026AF000001928\"]" GO1189 LAR WHIT "[\"300ED89F335000B333B8CA8D\&q

我有一些这样的数据

Product Siz Color     RFIDs
GO1199  5XL WHIT    "[\"300ED89F335000B333B8CA8D\",\"300ED89F335000B333B8C5F3\",\"E2009A4050026AF000001928\"]"
GO1189  LAR WHIT    "[\"300ED89F335000B333B8CA8D\",\"300ED89F335000B333B8C5F3\",\"E2009A4050026AF000001928\"]"
GO1179  LAR WHIT    "[\"300ED89F335000B333B8CA76\",\"300ED89F335000B333B8C7C8\",\"300ED89F335000B333B8C58D\"]",
GO1169  LAR WHIT    "[\"300ED89F335000999A72D381\",\"300ED89F3350007FC4FDCCFB\",\"300ED89F3350007FC4FDDEF9\"]",
GO1199  LAR WHIT    "[\"300ED89F3350007FC4FDDF5E\",\"300ED89F3350007FC4FDDDE1\",\"300ED89F3350007FC4FDDDDF\"]"
最后一列是与该产品关联的RFID的数组。我想用SQL把它表达出来并像这样显示出来

Product Siz Color     RFID
GO1199  5XL WHIT    300ED89F335000B333B8CA8D
GO1199  5XL WHIT    300ED89F335000B333B8C5F3
GO1199  5XL WHIT    E2009A4050026AF000001928
GO1189  LAR WHIT    300ED89F335000B333B8CA8D
GO1189  LAR WHIT    300ED89F335000B333B8C5F3
GO1189  LAR WHIT    E2009A4050026AF000001928
谢谢


很抱歉,这是5.7而不是MySQL 8.0中的8,请使用
json\u table()

在早期版本中,它稍微复杂一些。基本上,您需要一个数字表来取消数组的测试:

select t.product, t.size, t.color, 
    json_unquote(json_extract(t.rfids, concat('$[', n.i, ']'))) rfid
from mytable t
inner join (select 0 i union all select 1 union all select 2) n
    on n.i < json_length(t.rfids)
选择t.产品、t.尺寸、t.颜色、,
json_unquote(json_extract(t.rfid,concat(“$[”,n.i,“]))rfid
来自MyT表
内部联接(选择0全部联接选择1全部联接选择2)n
n.i
您可以使用更多的数字展开子查询,以处理每个数组中超过3个项

product | size | color | rfid :------ | :--- | :---- | :----------------------- GO1199 | 5XL | WHIT | E2009A4050026AF000001928 GO1199 | 5XL | WHIT | 300ED89F335000B333B8C5F3 GO1199 | 5XL | WHIT | 300ED89F335000B333B8CA8D GO1189 | LAR | WHIT | E2009A4050026AF000001928 GO1189 | LAR | WHIT | 300ED89F335000B333B8C5F3 GO1189 | LAR | WHIT | 300ED89F335000B333B8CA8D GO1179 | LAR | WHIT | 300ED89F335000B333B8C58D GO1179 | LAR | WHIT | 300ED89F335000B333B8C7C8 GO1179 | LAR | WHIT | 300ED89F335000B333B8CA76 GO1169 | LAR | WHIT | 300ED89F3350007FC4FDDEF9 GO1169 | LAR | WHIT | 300ED89F3350007FC4FDCCFB GO1169 | LAR | WHIT | 300ED89F335000999A72D381 GO1199 | LAR | WHIT | 300ED89F3350007FC4FDDDDF GO1199 | LAR | WHIT | 300ED89F3350007FC4FDDDE1 GO1199 | LAR | WHIT | 300ED89F3350007FC4FDDF5E 产品|尺寸|颜色| rfid :------ | :--- | :---- | :----------------------- GO1199 5XL惠特E2009A4050026AF000001928 GO1199 | 5XL | WHIT | 300ED89F335000B333B8C5F3 GO1199 | 5XL | WHIT | 300ED89F335000B333B8CA8D GO1189 | LAR | WHIT | E2009A4050026AF000001928 GO1189 | LAR | WHIT | 300ED89F335000B333B8C5F3 GO1189 | LAR | WHIT | 300ED89F335000B333B8CA8D GO1179 | LAR | WHIT | 300ED89F335000B333B8C58D GO1179 | LAR | WHIT | 300ED89F335000B333B8C7C8 GO1179 | LAR | WHIT | 300ED89F335000B333B8CA76 GO1169 | LAR | WHIT | 300ED89F3350007FC4FDDEF9 GO1169 | LAR | WHIT | 300ED89F3350007FC4FDCCFB GO1169 | LAR | WHIT | 300ED89F335000999A72D381 GO1199 | LAR | WHIT | 300ED89F3350007FC4FDDDDF GO1199 | LAR | WHIT | 300ED89F3350007FC4FDDDE1 GO1199 | LAR | WHIT | 300ED89F3350007FC4FDDF5E
对不起,这是5.7版本,不是8.0版本。@user618886:是的。。。在你编辑你的问题之前我就开始回答了。现在查看我的编辑。我有幸将我的实例升级到8,因此我将移动到8并在那里使用您的解决方案。谢谢你们这么快的回复。数组元素的计数是常数吗? product | size | color | rfid :------ | :--- | :---- | :----------------------- GO1199 | 5XL | WHIT | E2009A4050026AF000001928 GO1199 | 5XL | WHIT | 300ED89F335000B333B8C5F3 GO1199 | 5XL | WHIT | 300ED89F335000B333B8CA8D GO1189 | LAR | WHIT | E2009A4050026AF000001928 GO1189 | LAR | WHIT | 300ED89F335000B333B8C5F3 GO1189 | LAR | WHIT | 300ED89F335000B333B8CA8D GO1179 | LAR | WHIT | 300ED89F335000B333B8C58D GO1179 | LAR | WHIT | 300ED89F335000B333B8C7C8 GO1179 | LAR | WHIT | 300ED89F335000B333B8CA76 GO1169 | LAR | WHIT | 300ED89F3350007FC4FDDEF9 GO1169 | LAR | WHIT | 300ED89F3350007FC4FDCCFB GO1169 | LAR | WHIT | 300ED89F335000999A72D381 GO1199 | LAR | WHIT | 300ED89F3350007FC4FDDDDF GO1199 | LAR | WHIT | 300ED89F3350007FC4FDDDE1 GO1199 | LAR | WHIT | 300ED89F3350007FC4FDDF5E