Tôi có một bảng đang nhận được hàng trăm yêu cầu mỗi phút. Vấn đề tôi gặp phải là tôi cần một cách để chỉ chọn các hàng đã được chèn vào trong 5 phút vừa qua. Tôi đang thử điều này:Chọn các hàng ít hơn 5 phút bằng DATE_SUB
SELECT count(id) as count, field1, field2
FROM table
WHERE timestamp > DATE_SUB(NOW(), INTERVAL 5 MINUTE)
ORDER BY timestamp DESC
Vấn đề của tôi là nó trả về 70k + kết quả và đếm. Tôi không chắc mình đang làm gì sai, nhưng tôi rất muốn được giúp đỡ về điều này. Ngoài ra, nếu có một cách để nhóm chúng theo phút để trông giống như sau:
| count | field1 | field2 |
----------------------------
Tôi rất muốn được giúp đỡ và hướng dẫn về điều này, vì vậy hãy cho tôi biết suy nghĩ của bạn.
loại của 'cột timestamp' là gì? – Tadeck
@tadeck đó là một ngày giờ, điều đó có tạo nên sự khác biệt không? –
Nó tạo ra sự khác biệt lớn, vì một số người sử dụng 'INT' để lưu dấu thời gian. Nó cũng khác với kiểu 'TIMESTAMP', vì' DATETIME' được xử lý theo nghĩa đen và không điều chỉnh cho múi giờ. Đây có thể là vấn đề - so sánh dấu thời gian của mục nhập được chèn gần đây với kết quả của 'CHỌN NGAY BÂY GIỜ();' và cho chúng tôi biết về các giá trị của cả hai. – Tadeck