我在MySQL中有一张表,其中每一行都包含从另一个系统返回的JSON。 JSON如下所示:

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


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

我可以使用JSON_EXTRACT仅提取errorCodes

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


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

最佳答案

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

10-05 20:02