mysql 查询json中的数组字段,如表字段extra存储的数据为{"classCodesA": ["ACVRVI"]} ,怎么使用mysql搜索classCodesA的某个值匹配
时间: 2024-02-25 10:53:34 浏览: 26
你可以使用MySQL中的JSON_EXTRACT函数来查询JSON中的数组字段。下面是一个例子:
假设你的数据表名为`my_table`,JSON字段名为`extra`,你想查询`classCodesA`数组中是否包含值为`ACVRVI`的元素,可以使用以下SQL语句:
```
SELECT * FROM my_table WHERE JSON_CONTAINS(JSON_EXTRACT(extra, '$.classCodesA'), '"ACVRVI"');
```
这条SQL语句会返回包含`classCodesA`数组中包含值为`ACVRVI`的元素的所有行。
需要注意的是,上面的SQL语句会返回所有包含匹配值的行,而不仅限于匹配的JSON数组字段。如果你需要精确匹配某个JSON字段,可以使用`JSON_EXTRACT`函数检索该字段,然后再使用`JSON_CONTAINS`函数检查其值是否包含匹配项。
相关问题
mysql json中有一个数组类型字段 ,例如:extra_note json字段中有值:{"scopeCode": "project", "classCodesA": ["ACCCAC"]} ,怎么用= 查询classCodesA,数组完全等于
你可以使用MySQL的`JSON_CONTAINS`函数来查询JSON数组,其中可以指定第三个参数来确保数组完全匹配。
例如,要查询`extra_note`字段中`classCodesA`数组完全等于`["ACCCAC"]`的记录,可以使用以下查询语句:
```
SELECT * FROM your_table
WHERE JSON_CONTAINS(extra_note->'$.classCodesA', '["ACCCAC"]', '$') = 1
AND JSON_LENGTH(extra_note->'$.classCodesA') = 1;
```
这个查询语句中,`JSON_CONTAINS`函数用来判断`classCodesA`数组中是否包含完全匹配的数组`["ACCCAC"]`,第三个参数`'$'`表示从JSON字符串的顶层开始查找;而`JSON_LENGTH`函数用来确保`classCodesA`数组的长度为1,以确保数组完全匹配。
注意,`extra_note`字段必须是JSON类型,否则这个查询语句将会失败。
mysql中json字段查询
在MySQL中查询JSON字段可以使用json_extract函数。如果需要模糊查询JSON数组格式字段中某个字段,可以使用以下方式:
```sql
SELECT * FROM 表名 WHERE json_extract(字段名,"$[*].json中key") like '%需要搜索的值%';
```
例如,如果要模糊查询json_extract(sign_customer_info_ext,"$[*].cstName")字段中包含"马云"的记录,可以使用以下语句:
```sql
SELECT * FROM table WHERE json_extract(sign_customer_info_ext,"$[*].cstName") like '%马云%';
```
另外,如果要精确查询JSON数组中某个字段的值,需要指定字段所属数组的下标。例如,要查询json_extract(sign_customer_info_ext,"$<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* *3* [MySQL中查询 json 格式的字段](https://blog.csdn.net/weixin_46756314/article/details/112286652)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"]
[ .reference_list ]