2010-12-07 69 views
0

我有一點複雜的MySQL查詢爲我,我無法弄清楚如何寫它,而不吃噸的內存。 (我真的不介意它會)獨特和組SQL查詢

我有如下表:

   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應該有信任的第一優先權,因爲多重你sers可能使用相同的IP。

任何有效的方法來實現這一目標?

謝謝你。

+0

什麼都在此表中的鍵?我很困惑,你怎麼能有兩個不同的條目,都沒有ID和相同的IP。 – eykanal 2010-12-07 17:27:52

+0

沒有鑰匙@eykanal – Ryan 2010-12-07 17:29:09

回答

1

你想要做的事可以使用group_contact完成。

SELECT標識,GROUP_CONCAT(IP)作爲IPS FROM 日誌按id

編輯組:忘記組由