Я использую Mysql версии следующим образом:Разбор данных JSON в Mysql
mysql> SHOW VARIABLES LIKE "%version%"
->
-> ;
+-------------------------+------------------------------+
| Variable_name | Value |
+-------------------------+------------------------------+
| innodb_version | 5.6.26 |
| protocol_version | 10 |
| slave_type_conversions | |
| version | 5.6.26 |
| version_comment | MySQL Community Server (GPL) |
| version_compile_machine | x86_64 |
| version_compile_os | osx10.8 |
+-------------------------+------------------------------+
7 rows in set (0.00 sec)
У меня есть таблица с именем tag
и внутри него, у меня есть столбец с именем text
tagconfig
. Этот столбец содержит данные в формате JSON, которые хранятся в виде строки в следующем:
{ "option":{ "secure":"0" , "onetime":"0" , "rtmp":"1" , "hls":"0" , "http":"0" } , "video":[{ "format":"mp4" , "codec":"h264" , "bitrate":"800" , "width":"" , "height":"" , "fps":"" , "audiocodec":"mp3" , "audiobitrate":"96" }] }
Я хочу, чтобы найти число элементов внутри video
массива в данных JSON.
Я попытался с помощью common_schema
, как следующее:
SELECT common_schema.get_option(be.tagconfig,'option') as t
from tag be LIMIT 200;
Однако, я получаю все значения как null
. Предпочтительно, я хочу создать другой столбец, который имеет количество элементов в массиве video
в json-данных. Есть ли прямой способ в mysql сделать это?
Лучше сделать эту работу в уровень приложения. Разбор данных json в 'MySQL' слишком громоздкий! – 1000111
Если вы не обновите его до 5.7, который уже встроен в функции json. –