2017-01-04 5 views
0

mysqlのjsonフィールドからwhereという条件で検索データがあります。データは表示されません。mysql jsonデータ型からデータが返されない

JSONタイプ

私のJSONデータである "ATTRIBUTES_LIST" の

MySQLのフィールド名:mysqlのの

{ 
"0": 
    { 
     "id": "01c93aae-8603-42f3-b097-89357467872a#####ed20eb29-611a-4e5c-a966-c09708c98179", 
     "text": "Canada", 
     "attr_name": "Country" 
    }, 
"1": 
    { 
     "id": "01c93aae-8603-42f3-b097-89357467872a#####6e6269a1-afbb-4d5d-b2ee-6d25fe38fec7", 
     "text": "Ontario", 
     "attr_name": "REGION" 
    }, 
"2": 
    { 
     "id": "5a0a085e-f3e4-4fbe-9f3e-61cec4836d36#####d81923c9-9532-4375-ba3d-19214ac61c4e", 
     "text": "Lager", 
     "attr_name": "TYPE" 
    }, 
"-1": {"id": "", "text": "", "attr_name": ""} 
} 

マイJSONクエリ:

私は、次のクエリを実行すると、データに

を表示
SELECT * FROM products where attributes_list->'$[0]."0".text' = 'Canada'; 

しかし、これを実行すると、データが表示されません

SELECT * FROM products where attributes_list->'$[0]."*".text' = 'Canada'; 

私は自分の状態を説明します。

製品テーブルでは6行があります。製品テーブルには、名前属性リストのフィールドがあります。

このフィールドはjsonタイプです。製品の複数の属性を保存しています。私ATTRIBUTE_LISTのJSON形式は

{"0":{"id":"","text":""},"1":{"id":"","text":""}}. 

は、今私はテキスト=「カナダ」をMySQLのmanualセレクタ$によると、これらの製品情報

答えて

0

を読んでどこ検索したいです**。テキストが使用されて来ます。

[そこに到達するためにページ上で(パス$ **。B)を検索します。]

これは、すべての文書の第二のレベルを検索しますと第二のレベルでのテキストキーの値を返します。 は、だからあなたのクエリは次のようになります:あなたはfiddle

+0

に前述したように

SELECT * FROM products where attributes_list->'$.*.text' = 'Canada'; 

また、私は同じタスクを実行しようとした私はあなたのクエリを試してみましたが、これは動作していません。 「select json_depth(attributes_list)from products;」を実行すると、私はあなたに言います。これには深度レベル3が表示されます。 –

+0

上記の更新クエリ@SanaulIshaqueをチェックしましたか? –

+0

はい更新クエリを実行しましたが、結果が見つかりませんでした。 –

関連する問題