distinct
từ khóa đang làm những gì nó phải làm, trả về mỗi hàng một giá trị cột nhất định. Khác biệt không cho phép bạn chỉ định cái nào hàng như vậy sẽ được trả về và rõ ràng từ truy vấn ban đầu rằng thứ tự như vậy được phép (có một hàng có id 443 tiếp theo một hàng có id 429).
Để kiểm soát những hàng nào sẽ được trả về, bạn cần phải định dạng lại truy vấn. Một giải pháp điển hình mà tôi sẽ thực hiện là sử dụng nhóm group by
, chọn cột nhóm và hàng mong muốn từ mỗi nhóm, điều gì đó ảnh hưởng đến
SELECT message.id, MAX(message.created_at) FROM message GROUP BY message.id;
Nếu tôi cần phải làm nhiều hơn, tôi sẽ sử dụng loại truy vấn này như một lựa chọn con trong một truy vấn lớn hơn, có thể kết hợp trên trường id để nhận được nhiều trường hơn từ hàng ưu tiên, Hoặc sắp xếp truy vấn theo một cách cụ thể.