mysql - 如何使用 JSON_SEARCH() 在 MySQL JSON 数组中查找数字的路径?

标签 mysql arrays json

注意:这是针对 MySQL 5.7 的。

当我尝试使用 JSON_SEARCH 查找 JSON 数组中数字值的路径时,我得到了 NULL。但是当我使用 JSON_SEARCH 查找字符串时,我实际上得到了路径。

# String Search Example

SET @json = '[1, 2, 3, "abc"]';
SELECT JSON_SEARCH(@json, 'one', 'abc');

----------
| "$[3]" |
----------

...但是当我明确搜索数字值时,我得到 NULL?

# Number Search Example

SET @json = '[1, 2, 3, "abc"]';
SELECT JSON_SEARCH(@json, 'one', 1);

----------
| NULL   |
----------

奇怪的是 JSON_CONTAINS 仍然可以按预期处理数字或字符串。


这可能类似于这个问题-> MYSQL Triggers: JSON_SEARCH an integer value in a json array of integers

最佳答案

JSON_SEARCH 函数仅适用于文档中提到的字符串标量:Functions That Search JSON Values

在这里你可以看到:

报告的错误 - JSON_SEARCH does not search for non-string values

报告的功能 - Make JSON_SEARCH work for non-strings

关于mysql - 如何使用 JSON_SEARCH() 在 MySQL JSON 数组中查找数字的路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44056978/

相关文章:

python - 将 numpy 数组列表转换为 json 以从 flask api 返回

mysql - 制作复合 key "bidirectional"

MySQL 条件连接

c++ - 将相似的变量存储在数组中有什么好处吗?

c++ - 为什么我不能将数组传递给函数模板?

PHP - 将资源从 PHP 推送到嵌套不同资源/星期几的 JSON 时出错

java - 在servlet中将HashMap数组转换为json对象并在jsp页面中显示

mysql - 如何在 MYSQL (PHP) 中显示当前名称排序规则

mysql - 2 表连接和 1 组连接

json - 解压缩 Gzip JSON 响应