2011-11-14 34 views
1

我需要PHP中的SQL for MySQL。請查看下錶:SQL - 在特定時間(或ID)後選擇NEW值

| id |  ip  | time | 
| -------------------------------| 
| 1 88.207.189.58 1321301482 | 
| 2 76.192.849.84 1321301487 | 
| 3 65.253.192.46 1321301492 | 
| 4 88.207.189.58 1321301522 | 
| 5 12.112.221.22 1321301582 | 
| 6 65.253.192.46 1321301633 | 
| 7 76.192.849.84 1321301657 | 
| 8 76.192.849.84 1321301710 | 
| 9 12.112.221.22 1321301819 | 

我需要選擇IP的一個特定的時間

如後是新:我想時間= 1321301522後選擇行,但他們應該是新的,他們可能不會在那之前出現。在這種情況下,唯一有效的IP將是12.112.221.22(第5行)。

這是行不通的:SELECT ip FROM table_name WHERE time> 1321301522,因爲它也會列出非新的。他們可能在那之前沒有出現過。

在此先感謝!

回答

4
SELECT ip 
FROM myTable 
GROUP BY ip 
HAVING MIN(time) >= 1321301522 
1
SELECT ip from tableName where time > 1321301522 and NOT EXISTS (SELECT ip from tableName where time <= 1321301522) 

不知道這是做的最好的方式,但它是一種方法。

+0

我必須upvote斯圖爾特的答案 - 更整潔,更精簡 – xbonez