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

Lỗi cú pháp hoặc vi phạm quyền truy cập:1055 Biểu thức số 8 của danh sách SELECT không nằm trong mệnh đề GROUP BY và chứa cột không được tổng hợp

Đây là một điều mới trong MySQL 5.7 và là một cảnh báo rằng truy vấn của bạn không rõ ràng.

Xem xét bảng sau:

id    |   name    |   age    |   points
--------------------------------------------
1         Bob         21         1
2         James       14         1
3         Bob         21         3
4         James       14         2
5         Casey       17         3

Nếu bạn đã thực hiện truy vấn sau:

SELECT name, age, SUM(points) FROM scores GROUP BY name

Sau đó là name cột được sử dụng để phân nhóm. Lưu ý rằng age có thể có nhiều giá trị, vì vậy nó "không được tổng hợp". Bạn cần phải làm gì đó để thu gọn các giá trị đó.

Hành vi trong 5.6 trở về trước là chỉ chọn cái đầu tiên tùy thuộc vào thứ tự sắp xếp, mặc dù điều này đôi khi không thể đoán trước và sẽ thất bại. Trong 5.7, họ ngăn cản bạn làm điều đó ngay từ đầu.

Giải pháp ở đây là nhóm trên đó hoặc áp dụng một toán tử tổng hợp như MIN() với nó.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Chạy tổng cộng trong phạm vi ngày - điền vào những ngày còn thiếu

  2. Khi nào đóng con trỏ bằng MySQLdb

  3. Tham số MyBatis từ HashMap

  4. MYSQL giống như một tham gia nhưng chỉ cần hàng mới nhất?

  5. Tham gia trường mảng JSON với trường chuỗi trong mysql