想象一下一张table,上面有棒球投手的踪迹,就像这样。。。
+------------+--------------------+-------+
| id | name | secondary_pitch |
+------------+--------------------+-------+
| 13 | Chris Sale | ['Curveball','Slider'] |
| 14 | Justin Verlander | ['Fastball','Changeup'] |
| 15 | CC Sabathia | ['Fastball','Curveball'] |
| 16 | Sonny Grey | ['Slider'] |
| 17 | Aldoris Chapman | [] |
+------------+--------------------+-------+
注意,第二列有一个json值。因此,如果一个pitcher,比如chapman,没有第二音高,它将不会返回null,而是返回一个空的json字符串('[])。
那我怎么计算没有第二投球的投手的数量呢?
我不能。。。
select count(*) from pitchers where secondary_pitch is null
5条答案
按热度按时间kuarbcqp1#
我看到这并没有回答与空数组匹配的原始问题(
[]
)但这对我来说是有效的,与空字典相匹配({}
),在mysql5.7.20-0ubuntu0.16.04.1 - (Ubuntu)
.我使用了json_object函数,但json_数组也很可能以类似的方式工作,在没有参数的情况下调用时创建“空”对象。
如果我想匹配json列
vmkeys
的价值{}
(空字典),我使用以下查询:与…抗衡
vmkeys
值为null时,我使用以下方法:希望这有帮助。。。
aurhwmvo2#
这将检查辅助音调是(null)还是“”(空字符串)
你也可以这样用。
kmpatx3s3#
您可以使用以下功能
u7up0aaq4#
我想你可以用
json_length()
:rsl1atfo5#
你可以用
JSON_EXTRACT
从列中获取第一个值并检查是否不为null演示