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

Hành vi GROUP BY khi không có hàm tổng hợp nào trong mệnh đề SELECT

Đọc Tài liệu MySQL > về điểm cụ thể này.

Tóm lại, MySQL cho phép bỏ qua một số cột khỏi GROUP BY, vì mục đích hiệu suất, tuy nhiên điều này chỉ hoạt động nếu các cột bị bỏ qua đều có cùng giá trị (trong một nhóm), nếu không, giá trị được trả về bởi truy vấn thực sự là không xác định , như những người khác đã đoán đúng trong bài đăng này. Để chắc chắn rằng việc thêm một mệnh đề ORDER BY sẽ không giới thiệu lại bất kỳ hình thức hành vi xác định nào.

Mặc dù không phải là cốt lõi của vấn đề, nhưng ví dụ này cho thấy cách sử dụng * thay vì liệt kê rõ ràng các cột mong muốn thường là một ý tưởng tồi.

Trích từ tài liệu MySQL 5.0:

When using this feature, all rows in each group should have the same values
for the columns that are omitted from the GROUP BY part. The server is free
to return any value from the group, so the results are indeterminate unless
all values are the same. 


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. FIND_IN_SET () so với IN ()

  2. MySQL - CẬP NHẬT nhiều hàng với các giá trị khác nhau trong một truy vấn

  3. Hướng dẫn sử dụng MySQL - Hướng dẫn cho người mới bắt đầu học MySQL

  4. Dấu gạch nối trong tên cột trong MySQL DB

  5. Cách trả về kết quả truy vấn dưới dạng danh sách được phân tách bằng dấu phẩy trong MySQL