Как написать запрос для извлечения json атрибутов внутри вложенного объекта массива JSON - PullRequest
0 голосов
/ 07 мая 2020

У меня есть такие таблицы, как

  1. UserDetails, который содержит UserID, FirstName, LastName и Email
  2. JSONDetails, который содержит JSON_ID, JSON, UserID
  3. Шаблоны который содержит Template_ID, TemplateName, Tag

Sample JSON, который я храню в таблице JSONDetails

 [{
        "moduleid": "3",
        "ischecked": true,
        "activity": [{
            "tag": "Project",
            "text": "All Project related activites email",
            "ischecked": false,
            "emailsettingvalue": "NoEmail"
        }, {
            "tag": "Contacts",
            "text": "All Contact related activites email",
            "ischecked": true,
            "emailsettingvalue": "Instant"
        }, {
            "tag": "RFI",
            "text": "All RFI related activites email",
            "ischecked": true,
            "emailsettingvalue": "Instant"
        }, {
            "tag": "Ticket",
            "text": "All Ticket related activites email",
            "ischecked": true,
            "emailsettingvalue": "Instant"
        }]
    }, {
        "moduleid": "2",
        "ischecked": true,
        "activity": [{
            "tag": "Project",
            "text": "All Project related activites email",
            "ischecked": true,
            "emailsettingvalue": "Instant"
        }, {
            "tag": "Contacts",
            "text": "All Contact related activites email",
            "ischecked": true,
            "emailsettingvalue": "Instant"
        }, {
            "tag": "RFI",
            "text": "All RFI related activites email",
            "ischecked": true,
            "emailsettingvalue": "Instant"
        }, {
            "tag": "Ticket",
            "text": "All Ticket related activites email",
            "ischecked": true,
            "emailsettingvalue": "Instant"
        }]
    }]

У меня есть входной адрес электронной почты, moduleid и TemplateName, как мне написать запрос SP чтобы получить значение настройки электронной почты на основе моих входных значений.

мои мысли, как показано ниже

  • получить тег, используя TemplateName, сохраняя его в переменной
  • JOIN UserDetails to JSONDetails get JSON
  • затем извлеките значение настройки электронной почты, используя идентификатор модуля и тег

1 Ответ

0 голосов
/ 07 мая 2020

Вы можете использовать json_extract, чтобы найти значения внутри json.

Вот скрипт, основанный на ваших данных.

https://dbfiddle.uk/?rdbms=mysql_8.0&fiddle=a167b9ecb738993f3ef972ef77b8f2a9

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...