2011-09-26 42 views
20

đây là bảng SQL của tôi:Làm thế nào để chọn các bản ghi 3 phút cuối cùng từ MySQL với PHP

+----------------+----------------+-----------+------------------------+ 
| User_Name | Password | IP  |  Login_Time  | 
+----------------+----------------+-----------+------------------------+ 
| rthrthrhrt | fjdjetje5e | 127.0.0.1 | 2011-09-24 18:02:06 | 
| Empty   | Empty  | 127.0.0.1 | 2011-09-24 18:10:01 | 
| Empty   | Empty  | 127.0.0.1 | 2011-09-24 18:04:00 | 
| rsyrt   | rwytw4364 | 127.0.0.1 | 2011-09-24 18:08:59 | 
| eryrjrj5  | Empty  | 127.0.0.1 | 2011-09-24 18:03:56 | 
| reutreuetry | reuretyre | 127.0.0.1 | 2011-09-24 18:06:53 | 
| Empty   | rthrtrt  | 127.0.0.1 | 2011-09-24 18:05:51 | 
| djdjgdjh  | 66735  | 127.0.0.1 | 2011-09-24 18:09:49 | 
| fgjdgjdhg  | Empty  | 127.0.0.1 | 2011-09-24 18:07:46 | 
| Empty   | Empty  | 127.0.0.1 | 2011-09-24 18:11:43 | 
+----------------+----------------+-----------+------------------------+ 

Tôi đang phát triển một addon brute force với PHP và MySQL. Tôi muốn chọn các bản ghi 3 phút cuối cùng.

ví dụ (những gì tôi muốn làm?): Thời gian bây giờ là: 2011-09-26 9:45:00. tôi muốn chọn tất cả hồ sơ trong khoảng thời gian từ 2011-09-26 9:45:00 và 2011-09-26 9:42:00.

+4

gì bạn đã thử? Hoặc bạn muốn mã sẵn sàng? – Rikesh

+0

@riky, cái gì? lấy làm tiếc? –

Trả lời

58

Sử dụng này truy vấn sql:

select * from myTable where Login_time > date_sub(now(), interval 3 minute) ; 
+0

cảm ơn, nó hoạt động. A + giúp đỡ. Cảm ơn nhiều. –

+0

select count (1) từ myTable nơi Login_time> date_sub (now(), interval 3 minute); # đó sẽ hiệu quả hơn nhiều rồi chọn * –

+0

@GregoryPatmore, OP không chỉ muốn đếm, nhưng toàn bộ các bản ghi, do đó chọn * hoặc chọn tên trường là bắt buộc – DhruvPathak

6

Truy vấn này sẽ làm việc ngay cả khi bàn của bạn không được cập nhật ...

select * from myTable where Login_time > select max(time) - interval 3 minute ; 
+0

wow tuyệt vời ... giải quyết vấn đề của tôi trong nháy mắt ... tuyệt vời –

Các vấn đề liên quan