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

时间:2017-05-18 20:11:45

标签: 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

1 个答案:

答案 0 :(得分:0)

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

在这里您可以看到:

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

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