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/

相关文章:

mysql - 如何执行一个查询来计算 3 种类型的折扣?

mysql - 在 mySQL 中创建多列约束而不是 ALTER

java - 将 DataInput 的字符串编码为 "modified UTF-8"

java - 如何根据json属性前缀在jackson中创建数组字段?

php - 如何在不明确的列名上产生错误消息?

php - 为什么PHP Mysql multi_query()比loop query()慢

javascript - 将较小数组的每个 block 放入每一行中

arrays - 3D/4D 数组如何以列优先顺序在内存中连续存储?

python - urllib2 和 json

json - 戈朗 : Multiple structs marshall issue: json format