2017-12-05 14 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を参照してください。

関連する問題