我有一个包含两列的表:
1.客户ID
json_data
(包含JSON对象)如下所示
{
"nameValuePairs": {
"CONTACTS": {
"nameValuePairs": {
"contacts": {
"values": [
{
"nameValuePairs": {
"contact_id": "1",
"contact_phoneNumber": "080000016",
"contact_phoneNumberCategory": "Mobile",
"contact_firstName": "Huawei Customer Service",
"contact_last_name": "Huawei Customer Service",
"contact_title": "Huawei Customer Service",
"contact_email": "mobile.pk@huawei.com"
}
},
{
"nameValuePairs": {
"contact_id": "2",
"contact_phoneNumber": "15",
"contact_phoneNumberCategory": "Mobile",
"contact_firstName": "Police Helpline",
"contact_last_name": "Police Helpline",
"contact_title": "Police Helpline"
}
},
{
"nameValuePairs": {
"contact_id": "3",
"contact_phoneNumber": "16",
"contact_phoneNumberCategory": "Mobile",
"contact_firstName": "Fire Brigade Helpline",
"contact_last_name": "Fire Brigade Helpline",
"contact_title": "Fire Brigade Helpline"
}
}
]
}
}
}
}
}
现在,我想使用MySQL提取信息,以便获得如下表
| 客户ID|联系人_职务|
| - ------|- ------|
| 1个|华为帮助热线|
| 1个|警察|
我怎样才能得到上面的表格?我需要查询
我尝试以下查询
JSON_EXTRACT(json_data, '$.nameValuePairs.CONTACTS.nameValuePairs.contacts.values[0]
.nameValuePairs.contact_title') AS "Contact name",
我要这张table
| 客户标识|联系人_职务|
| - ------|- ------|
| 1个|【"华为求助热线"、"警察"、"消防队"】|
| 第二章|【"华为求助热线"、"警察"、"消防队"】|
我不需要此表。我需要每行一个contact_title
,与同一个customer_id
对应
1条答案
按热度按时间ruarlubt1#
如果数据库版本是
8.0+
,则可以将JSON_TABLE()
函数与 * 交叉连接 * 沿着使用,例如或者更干净的选择可以是
Demo