我具有表示會話的消息的表:Mysql的基團OR
| sender | bigint(20) unsigned | NO | MUL | NULL | |
| recipient | bigint(20) unsigned | NO | MUL | NULL | |
| text | text | NO | | NULL | |
每一行都有一個發送者,接收者和消息的文本。
我想運行一個查詢,該查詢返回每個對話中的所有對話和消息數。
因此,如果數據的模樣:
1,2,Hello
2,1,Bye
1,3,Hi
我想知道的是1和2之間的對話有2個消息,以及1和3之間的對話有1個消息
所以我需要做類似
SELECT count(*), SET OF(sender, recipient) from messages group by (sender OR recipient)
但顯然,這是行不通的。是否有類似的事我可以做
開始:'選擇發件人用戶1,用戶2收件人從MY_TABLE UNION選擇收件人,發送者my_table' ...或在這裏'SELECT LEAST(發件人,收件人)user1,GREATEST(發件人,收件人)user2 FROM my_table;' – Strawberry