字符串我有一个表,其中我省对每条记录他的祖先集团用分隔符
+----+------------+
| id | ancestors |
+----+------------+
| 1 | ,1, |
| 2 | ,2, |
| 3 | ,3,1, |
| 4 | ,4,2, |
| 5 | ,5,3,1, |
| 6 | ,6,4,2, |
| 7 | ,7,5,3,1, |
+----+------------+
如何组由id
但像这样group by ','id','
,而不是group by id
得到这样的结果:
+----+------------+
| id | count |
+----+------------+
| 1 | 4 |
| 2 | 3 |
| 3 | 3 |
| 4 | 2 |
| 5 | 2 |
| 6 | 1 |
| 7 | 1 |
+----+------------+
我的要求是找到整个列ancestors
中的id
的计数。
请提供更多详细信息:模式详细信息,表结构/详细信息,正在使用的完整查询。当然,SQLFiddle会好很多! – SarathChandra
这是违反规范化的基本规则。祖先表应该有多行,祖先的原子值。假设你有2个父母,你最多有2行。你的榜样也没有意义。对于id 1,你有1作为祖先?为什么?你不是你自己的父母。 – gview
@gview总是遵循规范化的规则,它并不总是最好的选择,只是做出选择适合你的问题的解决方案。在我的情况下,如果我尊重我不能查询所有记录的下降规范化 – Youssef