2017-12-05 2 views
0

다음과 같은 테이블 구조가 있습니다.JSON_EXTRACT MySQL의 다차원 데이터

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"}] 

"필드"값을주고 "유형"값을 얻는 쿼리를 실행하고 싶습니다.

답변

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를 참조하십시오.