Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Cách chọn một hàng giá trị lớn nhất trong bảng mysql

Bạn cần đọc trên nhóm group by mệnh đề.

MySQL đang dễ dãi hơn rất nhiều so với mức cần thiết, gây ra sự nhầm lẫn trong quá trình này. Về cơ bản, bất kỳ cột nào không có tổng hợp sẽ được đưa vào nhóm group by mệnh đề. Nhưng đường cú pháp MySQL cho phép "quên" các cột. Khi bạn làm như vậy, MySQL sẽ xuất ra một giá trị tùy ý từ tập hợp mà nó đang nhóm lại. Trong trường hợp của bạn, hàng đầu tiên trong tập hợp là bob , vì vậy nó trả về điều đó.

Câu lệnh đầu tiên của bạn (sử dụng max() không có nhóm group by ) đơn giản là không chính xác.

Nếu bạn muốn một trong những người dùng lớn tuổi nhất, hãy order by age desc limit 1 là cách chính xác để tiếp tục.

Nếu bạn muốn có tất cả những người dùng lâu đời nhất, bạn cần có một lựa chọn phụ:

SELECT p.* FROM people p WHERE p.age = (select max(subp.age) from people subp);


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. nguyên nhân thực sự của lỗi mysql 1442 là gì?

  2. Nhóm đầu ra của SHOW COLUMNS vào danh sách được phân tách bằng dấu phẩy

  3. Cam kết và giao dịch MySQL

  4. Cách sử dụng tốt nhất hàm bình luận trong MySQL

  5. MySQL thêm 12 giờ vào một trường thời gian