【发布时间】:2017-06-21 15:53:11
【问题描述】:
假设我有一个看起来像这样的 json 字段
{
"unknownkey":{..},
"unknownkey":{..},
"unknownkey":{..},
}
对于特定用户,我可以轻松地使用该字段进行 CRUD,而无需求助于 mysql 的 json 搜索功能,因为未知键包括用户 ID(因此变得已知)。我可以通过路径来定位它。
我遇到的问题是从中获得通用结果。
1) 当密钥未知时,我如何从中获取第一个结果?
2) 如何限制结果的数量?比如说,我只想要 25 个结果,而不是整个 json 文档(可能很大)。
3) 如果我想要 NEXT 25 个结果(又名 25-50)怎么办。
对于 (1),我尝试将 mysql 变量设置为类似
@test = JSON_KEYS(fieldname, '$')[0]
然后将其插入我的参考中
fieldname->'$.[@test]'
类似的东西,有不同的变化,不能让它发挥作用。我也不喜欢这种类型的选项,似乎应该有更简单的方法。
对于 (2) 和 (3),我搜索了 https://dev.mysql.com/doc/refman/5.7/en/json-search-functions.html,但似乎在任何地方都找不到。
感谢任何帮助/想法!
【问题讨论】:
-
在 json 上使用内置函数时,它会解析文档,从而处理所有值。要在实际解析中限制为 25 个值,您必须创建自己的解析器(当 mysql 中的整个 json 解析器不稳定时,我构建了一个:20 行代码应该可以做到)