从SQL的数据库中的数组中的对象获取数据
我有一个表(主题)中的一个表(主题),我的数组中有内部的对象(数据库中的每一行中的这个数组都不同):
第1行中的colum colum:
[
{
"topicId": "CON",
"Dcentros": [
{
"dcentro_id": "9388TG",
"dcentro_name": "9388TG"
},
{
"dcentro_id": "9387OC",
"dcentro_name": "9387OC"
}
],
"topicName": "CONFLUENCE"
},
{
"topicId": "PMO",
"Dcentros": [
{
"dcentro_id": "9387OC",
"dcentro_name": "9387OC"
}
],
"topicName": "PMO"
},
{
"topicId": "TSM",
"Dcentros": [
{
"dcentro_id": "9387CC",
"dcentro_name": "9387CC"
}
],
"topicName": "TSM"
}
]
row2中的主题列:
[
{
"topicId": "COS",
"Dcentros": [
{
"dcentro_id": "9388TG",
"dcentro_name": "9388TG"
},
{
"dcentro_id": "9387OC",
"dcentro_name": "9387OC"
}
],
"topicName": "CONNECTIONS"
},
{
"topicId": "PTO",
"Dcentros": [
{
"dcentro_id": "9387OC",
"dcentro_name": "9387OC"
}
],
"topicName": "PTO"
},
{
"topicId": "TAM",
"Dcentros": [
{
"dcentro_id": "9387CC",
"dcentro_name": "9387CC"
}
],
"topicName": "TAMIT"
}
]
我想提取如果'dcentro_id'存在不同对象内部的'dcentro_id',则数组内部的每个对象的“主题名”。
PE: (提取“ dcentro_id:9387cc”的所有“ topicname”) 结果应该是:'tamit','tsm'。
我确实在MySQL中尝试了此操作:
SELECT JSON_EXTRACT(topics, '$[*].topicName') as c_name FROM tool_bbdd.workspace WHERE JSON_EXTRACT(JSON_EXTRACT(topics, '$[*].Dcentros[*].dcentro_id'), '$[*]') = '9387CC';
但是不正常,请提取对象中的所有主题,而不仅仅是它存在的主题。
一些帮助。 谢谢
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
目前尚不清楚您想要什么结果,但这只会选择具有特定
dcentro_id
的元素。使用Mariadb作为MySQL,因为MySQL似乎在网站上打破了网站...
It's not clear what results you want, but this will pick out only the elements with a specific
dcentro_id
.Demo using MariaDB as MySQL seems to be broken on the site...