mysql字段分按照逗号分隔获取分隔后的数量
时间: 2024-12-06 18:22:40 浏览: 313
在MySQL中,如果你有一个字段存储了以逗号分隔的值,并想获取这个字符串中值的数量,你可以使用`LENGTH()`函数配合`SUBSTRING_INDEX()`函数来实现。假设你的字段名为`values`,可以使用以下SQL查询:
```sql
SELECT COUNT(*) FROM (
SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(values, ',', numbers.n), ',', -1) AS value
FROM values
JOIN (SELECT a.N + b.N * 10 + c.N * 100 AS n
FROM (SELECT 0 UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4) a,
(SELECT 0 UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4) b,
(SELECT 0 UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4) c
WHERE a.N + b.N * 10 + c.N * 100 <= LENGTH(values)
) numbers
WHERE numbers.n < LENGTH(values) AND VALUES LIKE CONCAT('%', SUBSTRING_INDEX(values, ',', numbers.n), '%')
) subquery;
```
这个查询首先生成了一个序列(numbers),然后通过连接三个序列生成所有可能的组合,作为`SUBSTRING_INDEX()`的参数。接着,它从原始`values`字段中提取出每个子串,并计算它们的数量。
阅读全文
相关推荐


















