繁体   English   中英

区分和组SQL查询

[英]Distinct & Group SQL Query

我对我有一点复杂的MySQL查询,我不知道如何在不占用大量内存的情况下编写它。 (我不太介意)

我有下表:

              TABLE: users(id,ip)
              ------------------------------------
              4BF1510 | 40.145.10.99 <-- SAME IP (A)
SAME ID   --> 510SD55 | 65.12.105.42 
SAME ID   --> 510SD55 | 45.184.15.10
              201505V | 40.145.10.99 <-- SAME IP (A)
              984AZ6C | 72.98.45.76
                      | 10.15.78.10  <-- SAME IP (B)
                      | 10.15.78.10  <-- SAME IP (B)
SAME ID   --> B1D56SX |  
SAME ID   --> B1D56SX |  

我想要一个查询,每个唯一的ID或IP仅提取1个项目,所以:

4BF1510 | 40.145.10.99
510SD55 | 65.12.105.42
984AZ6C | 72.98.45.76
        | 10.15.78.10
B1D56SX |

最重要的事情:

  • 如果多个条目具有相同的IP和相同的ID->将它们分组
  • 如果多个条目具有相同的IP但ID不同->则不会将它们分组
  • 如果多个条目具有相同的ID但IP不同->将它们分组
  • 如果多个条目具有相同的IP但ID字段为 ->将它们分组
  • 如果多个条目具有相同的ID,但IP字段为 ->将它们分组

这意味着该ID应该具有信任的第一优先级,因为多个用户可以使用同一IP。

任何有效的方法来实现这一目标?

谢谢。

您想要执行的操作可以使用group_contact来完成。

SELECT id, GROUP_CONCAT (ip)作为ips FROM 日志,按id分组

编辑:忘记分组

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM