mysql:基于json的查询

mysql:基于json的查询,mysql,json,Mysql,Json,代码: CREATE TABLE t1(jdoc JSON); INSERT INTO t1 VALUES('{ "data": [ { "type": "required", "member": { "id" : "1001", "response": "none" }

代码:

CREATE TABLE t1(jdoc JSON);
INSERT INTO t1 VALUES('{
       "data": 
       [
         {                      
            "type": "required",
            "member": {
                "id" : "1001",
                "response": "none"
            }
        },
        {
            "type": "notrequired",
            "member": {
                "id" : "1009",
                "response": "accepted"
            }
        }
      ]            
 }');

INSERT INTO t1 VALUES('{
       "data": 
       [
         {                      
            "type": "maybe",
            "member": {
                "id" : "1002",
                "response": "none"
            }
        },
        {
            "type": "maybe",
            "member": {
                "id" : "1003",
                "response": "accepted"
            }
        }
      ]
}');               
我有两个问题

  • 首先是获取具有1002作为memeber.id的行。我为此尝试了两个查询,但都不起作用

    SELECT * FROM t1 where JSON_CONTAINS(jdoc, JSON_QUOTE('1002'), '$.data[*].memeber.id');
    
    SELECT * FROM t1 where JSON_EXTRACT(jdoc, '$.data[*].memeber.id') = '1002';
    
  • 第二种方法是获取类型为'required'和相应member.id=“1001”的行


  • 请帮助我查询。

    您的查询中有输入错误:memeber@IgorVujovic是的,没错。。它应该是“成员”