简体   繁体   English

如何计算mysql中的json项

[英]How to count json items in mysql

I have table channels:我有桌子频道:

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

And need to get count items in sort field for specific boquet...for example:并且需要在特定 boquet 的排序字段中获取计数项目......例如:

bouquet 1 have 3 sort items bouquet 12 have 2 sort items花束 1 有 3 个排序项目 花束 12 有 2 个排序项目

I try using this query in mysql but i did not get idea how can i calculate number of items in sort field:我尝试在 mysql 中使用此查询,但我不知道如何计算排序字段中的项目数:

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

I always get:我总是得到:

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

Which is incorrect.这是不正确的。

Using above help i come to this:使用上面的帮助我来到这个:

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

And i get correct count:我得到正确的计数:

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM