Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Как извлечь JSON-данные из строки? / 3 сообщений из 3, страница 1 из 1
06.03.2018, 14:31
    #39611227
Alibek B
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как извлечь JSON-данные из строки?
В таблице есть поле с типом TEXT, в котором содержаться примерно такие данные:
Код: plaintext
{"ID":250,"TYPER":1,"BRAND":"SNR","MODEL":"S2960-48G","PORT":48,"MANAGED":1,"FDBTYPER":3}
Мне нужно получить значение атрибута BRAND.
Пишу так: select cast(`metadata` as JSON)->"$.BRAND"
Но получаю ошибку синтаксиса.
Пробовал написать так:
Код: plaintext
json_extract(`metadata`, '$.BRAND')
Но получаю сообщение о несуществующей версии (версия СУБД MariaDB 10.0.32).
...
Рейтинг: 0 / 0
06.03.2018, 14:52
    #39611246
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как извлечь JSON-данные из строки?
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 12
Server version: 5.7.19-log MySQL Community Server (GPL)

Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> create table test(txt text);
Query OK, 0 rows affected (0.20 sec)

mysql> insert into test select '{"ID":250,"TYPER":1,"BRAND":"SNR","MODEL":"S2960-48G","PORT":48,"MANAGED":1,"FDBTYPER":3}';
Query OK, 1 row affected (0.03 sec)
Records: 1  Duplicates: 0  Warnings: 0

mysql> insert into test select '{"ID":255,"TYPER":2,"BRAND":"qwe","MODEL":"S2960-12G","PORT":25,"MANAGED":0,"FDBTYPER":2}';
Query OK, 1 row affected (0.02 sec)
Records: 1  Duplicates: 0  Warnings: 0

mysql> SELECT JSON_EXTRACT(CAST(txt AS JSON), '$.BRAND') FROM test;
+--------------------------------------------+
| JSON_EXTRACT(CAST(txt AS JSON), '$.BRAND') |
+--------------------------------------------+
| "SNR"                                      |
| "qwe"                                      |
+--------------------------------------------+
2 rows in set (0.09 sec)

mysql> SELECT txt->"$.BRAND" FROM test;
+----------------+
| txt->"$.BRAND" |
+----------------+
| "SNR"          |
| "qwe"          |
+----------------+
2 rows in set (0.05 sec)

mysql>
...
Рейтинг: 0 / 0
06.03.2018, 15:19
    #39611273
Alibek B
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как извлечь JSON-данные из строки?
Видимо без обновления никак.
Жаль.
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Как извлечь JSON-данные из строки? / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]