SQL - 在特定时间(或id)后选择新值

时间:2011-11-14 20:45:40

标签: php mysql sql select time

我需要PHP for PHP for MySQL。请查看下表:

 | 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 因为它也会列出非新的。他们可能在那段时间之前没有出现过。

提前致谢!!

2 个答案:

答案 0 :(得分:4)

SELECT ip
FROM myTable
GROUP BY ip
HAVING MIN(time) >= 1321301522

答案 1 :(得分:1)

SELECT ip from tableName where time > 1321301522 and NOT EXISTS (SELECT ip from tableName where time <= 1321301522 )

不确定这是否是最好的方法,但这是一种方式。