微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何使用json函数在mysql查询中操作这些数组

如何解决如何使用json函数在mysql查询中操作这些数组

我正在使用此查询

SELECT COUNT(1),JSON_EXTRACT(pack,JSON_UNQUOTE(PATH)) AS pkg 
FROM
    (SELECT pack,JSON_SEARCH(pack,'one','openstack-neutron-%',NULL,'$.packages[*]') AS PATH,cloud 
     FROM Node 
     WHERE JSON_SEARCH(pack,'$.packages[*]') IS NOT NULL ) AS sub
WHERE cloud = 'xxx'
GROUP BY pkg

输出很棒。它统计每个软件包的版本。

现在我需要添加“全部”:

SELECT COUNT(1),'all','$.packages[*]') IS NOT NULL ) AS sub
WHERE cloud = 'xxx'
GROUP BY pkg

我遇到了问题,现在我有一个数组,而不是JSON_UNQUOTE(PATH)中的值位置:

["$.packages[86]","$.packages[193]","$.packages[423]","$.packages[647]"]
["$.packages[209]","$.packages[548]","$.packages[651]","$.packages[871]"]
["$.packages[209]","$.packages[870]"]
["$.packages[86]","$.packages[647]"]
["$.packages[93]","$.packages[540]","$.packages[759]","$.packages[868]"]

如何更改我的查询以对下单进行计数?我曾想过将数组转换为行,但是查询需要很多时间。还有其他方法吗?我在Mariadb上,但没有json_table函数

谢谢

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。