如何计算MySQL中的JSON项目



我有表频道:

+----+----------------+---------+
| id | sort           | bouquet |
+----+----------------+---------+
|  1 | ["2","3","73"] | ["1"]   |
| 12 | ["3","73"]     | ["28"]  |
+----+----------------+---------+

并且需要在特定boquet的排序字段中获取计数项目...例如:

花束1有3个排序项目花束12有2个排序项目

我尝试在mySQL中使用此查询,但我没有知道如何计算排序字段中的项目数:

SELECT COUNT(sort) AS total_channels 
FROM channels 
WHERE JSON_SEARCH(bouquet, 'one', "1") IS NOT NULL;

我总是得到:

+----------------+
| total_channels |
+----------------+
|              1 |
+----------------+

是不正确的。

使用上述帮助我来了:

SELECT JSON_LENGTH(sort) FROM channels WHERE bouquet='["1"]';

我得到正确的计数:

mysql> SELECT JSON_LENGTH(sort) FROM channels WHERE bouquet='["28"]';
+-------------------+
| JSON_LENGTH(sort) |
+-------------------+
|                 2 |
+-------------------+
1 row in set (0.00 sec)

最新更新