JSON_SEARCH MySQL 和 MariaDB 的区别

JSON_SEARCH difference in MySQL and MariaDB

我只是尝试使用 JSON_SEARCH 函数获取值路径:

SELECT JSON_SEARCH('[12, 13, {"12": 123}]', 'one', '123', null, '$[*]') path;

当我 运行 在 MariaDB it works 中查询时,我得到了想要的结果

+===========+
| path      |
+===========+
| "$[2].12" |
+-----------+

但 运行 顶部的相同查询 MySQL 8.0 I got NULL

所以我需要帮助如何匹配查询以将其与 MySQL

一起使用

Bug #79233: JSON_SEARCH does not search for non-string values

如果您的 JSON 标量值是字符串,您可以找到它们:

mysql> SELECT JSON_SEARCH('[12, 13, {"12": "123"}]', 'one', '123', null, '$[*]') path;
                                           ^^^^^ quoted string value
+---------------+
| path          |
+---------------+
| "$[2].\"12\"" |
+---------------+