mysql - 在 MySQL 中提取 JSON 数组的某些成员

标签 mysql json

我在 MySQL 中有一个表,其中每一行都包含从另一个系统返回的 JSON。 JSON 看起来像:

[{"userId": "Dave"},{"userId": "Mary", "errorCode" : "DB Fail"}, {"userId": "Lorenza", "errorCode": "Web Error"}]

我只对包含错误代码的数组成员感兴趣。将来,这些将被解析为它们自己表的单独行,但与此同时,MySql 是否提供了一种仅使用错误代码提取这些行的方法?

我可以使用 JSON_EXTRACT 仅提取错误代码

JSON_EXTRACT(jsonData, '$[*].errorCode') AS errorCodes

但我真的想要成员的其余部分(上面示例中的 userId)

最佳答案

您可以使用 JSON_CONTAINS 函数查找带有 errorCode 的记录,然后对这些记录使用 JSON_EXTRACT。将 JSON_CONTAINS 放在 where 子句中

关于mysql - 在 MySQL 中提取 JSON 数组的某些成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50719163/

相关文章:

php - 如何从另一个表中获取数据?这样我就可以制定条件并建立关系(Laravel + Vue)

java - 使用对象数组构建 JSON

php - 从 'messages' 表中选择数据,没有错误,但不起作用。 MYSQL、PHP

json - 反序列化缺少第一列的数据表

java - 以某种格式将数据插入到 JSON 对象中

java - 将 XML 键值映射转换为 JSON 对象

php - 格式 echo json_encode

MySQL 访问被拒绝?

mysql - 为什么我在这个 kubernetes 示例中遇到 CrashLoopBackOff?

mysql - SQL 主键可以这样吗? (名单上的排名)