来自MySQL的JSON_EXTRACT多维数据

时间:2017-12-05 06:56:24

标签: mysql json extract

我有一张桌子,结构如下。

CREATE TABLE `layout` (
  `id` int(11) NOT NULL,
  `title` varchar(100) NOT NULL,
  `slug` varchar(100) NOT NULL,
  `structure` json NOT NULL,
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

名为structure的字段包含以下数据。

[{"Field":"Name","Type":"Text"},{"Field":"DOB","Type":"Date"}]

我想运行查询,我给出“字段”值,然后得到“类型”值。

1 个答案:

答案 0 :(得分:0)

尝试:

SET @`Field` := 'Name';

SELECT
  `id`,
  JSON_UNQUOTE(
    JSON_EXTRACT(
      `structure`,
      JSON_UNQUOTE(
        REPLACE(
          JSON_SEARCH(
            `structure`,
            'one',
            @`Field`,
            NULL,
            '$[*].Field'
          ),
          'Field',
          'Type'
        )
      )
    )
  )
FROM
  `layout`;

请参阅db-fiddle