在mysql中有两个字段的GROUP BY
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了在mysql中有两个字段的GROUP BY,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1473字,纯文字阅读大概需要3分钟。
内容图文
![在mysql中有两个字段的GROUP BY](/upload/InfoBanner/zyjiaocheng/899/7b8554092636426cbc9afbfa4fc28c13.jpg)
我在mysql中有一个表,它在用户之间存储消息.
该表包含以下字段:
ID from_memberID to_memberID message Date
+----+--------------+------------+-----------------------+-----------------------+
1 205 207 hello Peter 19/08/2012 20:00:00
2 207 205 Hi frank 19/08/2012 20:01:00
3 205 208 hello Jennifer 19/08/2012 20:10:00
4 207 210 hello Peter 19/08/2012 20:20:00
好吧,假设我想从用户205获得来自每个对话的最后消息
它应该得到寄存器2和3,即用户(205-207)和用户(205-208)之间的对话.事实是我使用GROUP BY from_memberID然后在我的结果中添加了寄存器ID = 1.
这是声明使用:
SELECT *
FROM
(SELECT msg.ID,
msg.mensaje,
msg.from_miembroID,
msg.fecha,
msg.read,
FROM mensajes as msg
INNER JOIN miembros as mem ON mem.ID=IF(msg.from_miembroID=205, msg.to_miembroID, msg.from_miembroID)
WHERE msg.to_miembroID=205 OR msg.from_miembroID=205
ORDER BY msg.fecha DESC) as temp
GROUP BY from_miembroID
我如何使用GROUP BY将两列(from_memberID,to_memberID)视为一个?
提前致谢.
解决方法:
您可以使用新的自定义字段,按自定义规则排序ID(from_memberID,to_memberID),例如较小的一个总是第一个.
例如:
SELECT
IF(from_memberID < to_memberID,
CONCAT(from_memberID, '-', to_memberID),
CONCAT(to_memberID, '-', from_memberID)
) as conversation_ids
FROM `messages`
该字段将返回唯一的组合,例如205-207无论205发送消息到207还是207发送消息到207.
最后,您可以按此值进行分组并获得唯一组合.
内容总结
以上是互联网集市为您收集整理的在mysql中有两个字段的GROUP BY全部内容,希望文章能够帮你解决在mysql中有两个字段的GROUP BY所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。