Как получить конкретное слово из синтаксиса - PullRequest
0 голосов
/ 15 мая 2019

Мое значение строки таково:

{
    "df8fb54b-dc58-2342-a5ee-2fdg4536h76": {
        "doc_name": "Missing File",
        "details": {
            "e2341431-ed8a-6aa4-b4541-d11771ae2456": "updated, No reference"
        }
    }
}

Исходя из этого, я хочу, чтобы мой вывод был updated, No reference

Пробовал substring(syntax, position)

Я хочу получить только updated, No reference как вывод из этого синтаксиса.

Может ли кто-нибудь помочь мне с этим?

Ответы [ 2 ]

0 голосов
/ 15 мая 2019

Если вы используете версию MySQL выше 5.7.17, вы можете использовать JSON_EXTRACT. Иначе вам придется использовать функцию SUBSTRING.

Пример использования SUBSTRING:

SELECT SUBSTRING(LabelName, 119, 21) FROM TableName WHERE ColumnName LIKE '%details%';

Этот запрос будет извлекать столбец, содержащий «детали», а функция SUBSTRING будет обрезана с позиции 119 длины 21. Но этот запрос немного странный. Если вы используете JSON в столбце, обновитесь до более поздней версии mysql, которая поддерживает функцию JSON_EXTRACT, или извлеките столбец как таковой и обработайте его в коде уровня приложения.

0 голосов
/ 15 мая 2019

Вы можете попробовать JSON_EXTRACT, чтобы разобрать значение json из строки столбца:

-- Change column_name and table_name depending on your table
Select
  JSON_EXTRACT(column_name, '$.df8fb54b-dc58-2342-a5ee-2fdg4536h76.details.e2341431-ed8a-6aa4-b4541-d11771ae2456')
From table_name

Это должно привести к включению "updated, No reference" кавычек. Если вы хотите удалить их также, посмотрите этот вопрос: Как я могу использовать JSON_EXTRACT в MySQL и получить строку без кавычек?

Я предполагал, что у вас будут одинаковые ключи для каждого случая, поскольку это не ясно из вашего вопроса.

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