简体   繁体   中英

MySQL regexp search JSON array

I am storing json data to one of the fields in a table and I am having trouble using REGEXP to return the correct entry Basically, it matches other attributes in the JSON object, that it should not

Sample JSON

    {
  "data": {
    "en": {
      "containers": [
        {
          "id": 1441530944931,
          "template": "12",
          "columns": {
            "column1": [
              "144",
              "145",
              "148"
            ],
            "column2":[
                "135",
                "148",
                "234"
            ]
          }
        }
      ],
      "left": "152",
      "right": "151"
    },

  }
}

Now, I would like to search the columns array against a specific value (ie 148)

Right now I have the below query

WHERE (w.`_attrs` REGEXP '"column[0-9]":.*\\[.*"148".*\\]'

which works just fine However, if I change the value from 148 to 152 or 151, it also works For some reason the query matches the attribute left and right as well, but this is not desirable

Any help?

Thanks

或者...切换到 MariaDB 10 并索引 JSON 的组件。

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM