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\"" |
+---------------+
我只是尝试使用 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\"" |
+---------------+