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

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

Susan Sarandon
Susan Sarandon原创
2024-11-29 11:59:09301浏览

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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn