【发布时间】:2021-07-16 14:56:07
【问题描述】:
我有这个问题
select json_length(data->"$.row.*.code") as count from hospitalization_history where id = 238
count中的结果是8,因为data->"$.row.*.code"返回["J00.00", "V01.00", "G00.00", null, null, null, null, null];
如何获取 json 数组中非空值的数量?
【问题讨论】:
-
将您的数组解析为行集,然后计算非
null值。见dbfiddle.uk/… -
@Akina 我将您的评论发布为社区 wiki。
-
@Scratte 我不确定我的代码是否适用于 OP 的服务器(它的版本可能太旧) - 在这种情况下,必须更改解决方案。
-
@Akina 我明白了。我没有想到这一点。如果他们回复说这对他们不起作用,或者您更愿意自己发布答案。我会删除它。我刚刚看到你的评论并玩弄它并自己学到了一些新东西:)
-
@Akina 似乎您的解决方案适用于 MySQL 8.0.24+。我有 8.0.16,结果得到 8
标签: mysql mysql-json