【发布时间】:2020-07-19 00:46:12
【问题描述】:
您好,我正在处理一个将两个关系表与客户信息相结合的选择查询。名为“选项”的字段包含大量 JSON 信息。
我找到了一篇类似的文章,但是我无法使其在现有查询的上下文中工作,并且服务器给出了错误消息函数“JSON_EXTRACT”不存在。经过进一步审查,我们发现服务器本身没有 JSON_EXTRACT 函数。
是否可以在两个字符串之间简单地使用 % % ?
即在 {"TransactionID":" 和 "} 之间选择
只是自己解释 JSON,而不是依赖服务器函数。
这里是查询
select u.Email, u.Name, up.Type, up.Name, up.Price, up.options from users_packages
inner join users u on up.UserID = u.id
选项字段显示此值,例如:
{"TransactionID":"4G631007P6080114Y39840"}
我正在寻找一个只给我值的查询,即“4G631007P6080114Y39840”并提取 TransactionID 的 JSON。请注意,除了 TransactionID 之外,可能还有其他一些 json 元素
谢谢!
看 https://stackoverflow.com/questions/49063684/mysql-extract-json-element-from-array
【问题讨论】:
-
你运行的是哪个版本的 MySQL (
select version())? -
MYSQL 版本是:5.5.56-MariaDB
-
在 MySQL 5.7 中添加了 JSON 支持,因此 json 函数如
JSON_EXTRACT()在 5.5 中不可用。如果你想使用 JSON,你真的应该考虑升级(此外,5.5 是一个真的旧版本,不支持)。 -
我明白了。是否有不涉及升级该服务器上的 MySQL 版本的解决方法?也许通过字符串?
-
我们升级到 Maria DB 10.1,JSON_EXTRACT 函数也不存在。
标签: mysql json inner-join