所以说我有
| id | value | -------------- | 1 | A | | 2 | B | | 3 | B | | 4 | A | | 5 | A |
然后运行以下SQL语句
SELECT value, COUNT(*) AS `num` FROM test2 GROUP BY value
我会得到A:3和B:2
很好,但是如果我想从多个列中合并
| id | value | Value2 | Value 3| --------------------------------- | 1 | A | A | A | | 2 | B | A | B | | 3 | B | B | B | | 4 | A | A | A | | 5 | A | B | A |
在上面的A:9 B:6中。目前,我只能运行上述语句3次,然后在php端添加该值。但是我认为用1条语句完成所有操作可能会有一个巧妙的小技巧。
使用将三列合并为一列,Union all然后在外部查询中找到每个组的计数。试试这个。
Union all
SELECT value, Count(value) FROM (SELECT value AS value FROM test2 UNION ALL SELECT value2 FROM test2 UNION ALL SELECT value3 FROM test2)a GROUP BY value