4

考虑下表。它描述了 user1 与 user2 开始对话的次数(“A 与 B 开始对话,5 次”):

user1  user2  count
-------------------
A      B      5
A      C      2
B      A      6
B      C      1
C      A      9
C      B      4

但是,我想合并相似用户之间的行。因此 user1:A 和 user2:B 与 user1:B 和 user2:A 相同,导致以下结果:

user1  user2  count
-------------------
A      B      11 (5 + 6)
A      C      11 (2 + 9)
B      C      5

我的第一个想法是将表选择到 PHP,循环遍历它,添加行并将结果插入新表中。但这似乎非常多余(而且速度很慢,因为该表包含数千条记录)。这也可能与(My)SQL有关吗?

4

1 回答 1

5
SELECT LEAST(user1, user2), GREATEST(user1, user2), SUM(count) AS count
FROM yourtable
GROUP BY LEAST(user1, user2), GREATEST(user1, user2)
于 2012-04-25T19:45:16.643 回答