计算MySql中每行的Multi-Valued属性的值

时间:2017-03-13 13:05:13

标签: mysql sql

我有以下架构:

联系人:

ID|    NAME   |Contact
----------------------
1 |     A     |1234,4567
-----------------------
2 |     B     |2345,5678,9012

此处,您可以看到ContactMultivalued field,而且一个人可以拥有与联系人号码一样多的数量。

现在,我想计算每个人的联系人数量。 我怎么能这样做?

注意:我不想规范化这个表。

任何帮助都会很明显。

1 个答案:

答案 0 :(得分:0)

虽然我不建议这样做,但这就是你要做的事情:

SELECT ID, (LENGTH(Contact) - LENGTH(REPLACE(Contact,",","")) + 1) AS NumberOfContacts    
FROM MyTable

输出将如下所示:

ID| NumberOfContacts
1 | 2
2 | 3

替换后长度的差异将告诉您字符串中有多少逗号,然后您需要添加1以包含最后一个数字。你应该正确地构建数据,但如果这是不可能的,那么你将需要使用这样的东西