考虑下表。它描述了 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

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

最佳答案

SELECT LEAST(user1, user2), GREATEST(user1, user2), SUM(count) AS count
FROM yourtable
GROUP BY LEAST(user1, user2), GREATEST(user1, user2)

关于mysql - 将两行合并为一,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10322624/

10-11 12:43