mysql JSON_CONTAINS
时间: 2023-11-27 15:45:38 浏览: 87
MySQL的JSON_CONTAINS()函数用于检查JSON数组或对象是否包含指定的值。该函数返回0或1,表示是否包含。JSON_CONTAINS()函数的语法如下:
```
JSON_CONTAINS(json_doc, val[, path])
```
其中,json_doc是要检查的JSON文档,val是要查找的值,path是可选的,用于指定要搜索的JSON路径。如果省略path,则默认搜索整个JSON文档。
引用提到了MySQL 8.0之前的一个bug,即json索引不生效。而在MySQL 8.0.24版本中,官方修复了这个问题,具体可以参考引用中的bug fix。
相关问题
mysql json_contains
mysql json_contains是一种MySQL函数,用于在JSON类型的数据中搜索指定的值或键。它可以帮助用户在JSON数据中执行高级搜索操作,以便针对特定的值或键进行过滤或查找。该函数可用于任何支持MySQL 5.7或更高版本的数据库系统。
json_contains
`json_contains` 是 MySQL 5.7.9 及以上版本中引入的 JSON 函数之一,用于检查 JSON 字符串是否包含另一个 JSON 字符串。
具体来说,`json_contains` 接受两个参数:第一个参数是包含 JSON 对象的字符串,第二个参数是要检查的 JSON 对象。如果第一个参数包含第二个参数,则返回 1,否则返回 0。
例如,假设有以下 JSON 对象:
```json
{"name": "John", "age": 30, "city": "New York"}
```
可以使用 `json_contains` 函数来检查是否包含另一个 JSON 对象:
```sql
SELECT json_contains('{"name": "John", "age": 30, "city": "New York"}', '{"name": "John"}');
-- 返回 1
SELECT json_contains('{"name": "John", "age": 30, "city": "New York"}', '{"name": "Mary"}');
-- 返回 0
```
需要注意的是,`json_contains` 函数只能用于检查 JSON 对象是否包含另一个 JSON 对象,而不能用于检查 JSON 数组中是否包含某个值。如果需要检查 JSON 数组,可以使用 `json_contains` 的其他变体函数,例如 `json_contains_path`。
阅读全文