注意:这适用于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
答案 0 :(得分:0)
JSON_SEARCH 函数仅适用于文档中提到的字符串标量:Functions That Search JSON Values
在这里您可以看到: