【发布时间】:2018-02-08 12:16:11
【问题描述】:
我有餐桌频道:
+----+----------------+---------+
| id | sort | bouquet |
+----+----------------+---------+
| 1 | ["2","3","73"] | ["1"] |
| 12 | ["3","73"] | ["28"] |
+----+----------------+---------+
并且需要为特定的花束在排序字段中获取计数项目...例如:
花束 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 |
+----------------+
这是不正确的。
【问题讨论】:
-
你读过JSON_LENGTH()吗?
-
使用 SELECT JSON_LENGTH(bouquet) FROM 频道;结果我得到 1
-
那就试试
SELECT JSON_LENGTH(sort) FROM channels; -
是的,我忘了放排序,现在它返回正确的计数值,但你能在这里写下如何放 WHERE 花束 =“1”吗? bouqet 是 json 类型 ["1"] 所以我不能使用花束="1"
-
还有另一个函数 JSON_DEPTH() .... 看看是否有帮助。