首页 > 数据库 > mysql教程 > 如何在MySQL中高效地搜索JSON数组中的元素?

如何在MySQL中高效地搜索JSON数组中的元素?

Susan Sarandon
发布: 2024-11-29 11:59:09
原创
302 人浏览过

How to Efficiently Search for Elements within JSON Arrays in MySQL?

在 MySQL 中搜索 JSON 数组

假设您有一个 MySQL 表,其中包含一个名为“data”的 JSON 列,其中包含一个数组。您希望检索其中一个数组元素大于 2 的所有行。

查询

SELECT * from my_table
WHERE JSON_EXTRACT(data, '$[*]') > 2;
登录后复制

返回不正确的结果,因为无论数组的值如何,它始终计算为 true .

在数组中搜索整数:

JSON_CONTAINS('[1,2,3,4,5]','7','$')  # Returns: 0
JSON_CONTAINS('[1,2,3,4,5]','1','$')  # Returns: 1
登录后复制

在数组中搜索字符串数组:

JSON_CONTAINS('["a","2","c","4","x"]','"x"','$')  # Returns: 1
JSON_CONTAINS('["1","2","3","4","5"]','"7"','$')  # Returns: 0
登录后复制

对于您的场景,请使用查询:

SELECT * from my_table
WHERE JSON_CONTAINS(data, '2', '$');
登录后复制

此查询选择“数据”列包含元素大于 2 的数组的所有行。

以上是如何在MySQL中高效地搜索JSON数组中的元素?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板