考虑下表。它描述了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吗?
答案 0 :(得分:5)
SELECT LEAST(user1, user2), GREATEST(user1, user2), SUM(count) AS count
FROM yourtable
GROUP BY LEAST(user1, user2), GREATEST(user1, user2)