【发布时间】:2021-04-21 01:48:01
【问题描述】:
所以我遇到的主要问题是我真的需要从另一个 JSON 格式的表中获取一个值,显然我认为,只需使用 JSON_VALUE 来获取我想要的属性......当我出现问题时在阿多尼斯创造的迁移,和惊喜。运行迁移后,我意识到我不能使用 JSON_VALUE 因为阿多尼斯服务器的版本。还有其他方法可以获得价值吗?
【问题讨论】:
-
你不能升级你服务器上的 MySQL 安装吗?
-
将整个 JSON 文档提取到您的应用程序中,将其解组为一个结构,然后选择您想要的值。你会后悔任何其他解决方案。我建议你升级你的 MySQL 版本。如果您使用的是 MySQL 5.6 或更早版本,it's already past its end of life.
-
@BillKarwin 如果您使用的是 MySQL 5.6 或更早版本 JSON_VALUE() 是在 8.0.21 中引入的。
-
还有其他方法可以获取值吗? 有很多字符串函数,足以解决您的任务。我建议创建通用的用户定义函数,但当然,在每种单独的情况下,您都可以构建单独的特定表达式。在任何情况下都必须在查询中应用转换为所需的输出数据类型(ex-或implicit) - 函数不能具有可更改的输出数据类型。
-
啊,对,我正在考虑 5.7 中的其他函数,例如 JSON_SEARCH()。