01/10/2018, 11:03

Lỗi truy vấn CSDL mySQL khi dùng ORDERBY và GROUP BY với nhau trên linux và windown

Khi bê project từ windown sang linux thì lỗi. Mình đang gặp lỗi với câu lệnh truy vấn lấy dữ liệu từ database ra:
select post_id from comments group by post_id order by created_at desc limit 5 offset 0
với câu lệnh trên ,trên windown mình truy vấn bình thường:


Còn trên linux mình lại bị lỗi. phải bỏ một trong hai hàm : order by hoặc group by đi.

Đây là code mình lấy dữ liệu trên laravel(PHP):
Comment::select('post_id')->groupBy('post_id')->orderBy('created_at','desc')->paginate(5);
Ý mình là muốn lấy ra id với dữ liệu được sắp xếp từ mới đến cũ nhất và lấy một id( cột đó có nhiều id như thế).
Bác nào có ý kiến gì giúp mình với.
Thanks.

Trang Xinh viết 13:14 ngày 01/10/2018

Theo mình lỗi này không liên quan gì đến môi trường Linux hay Windows mà nằm ở cấu hình của mysql server.

Bạn có thể tham khảo link: https://dev.mysql.com/doc/refman/5.7/en/group-by-handling.html.
Bạn kiểm tra sql_mode trên máy windows set lại cho mysql trên linux là được, mình đoán chỉ cần disable ONLY_FULL_GROUP_BY ở mysql trên máy linux.

null viết 13:07 ngày 01/10/2018

Đừng dùng cách disable only_full_group_by, vì có khi đưa lên host nó không cho chỉnh sql_mode là méo mặt.
Theo như nó ghi thì bạn thiếu cột created_at trong phần select.

Trang Xinh viết 13:20 ngày 01/10/2018

Đúng rồi đấy, nếu muốn chỉnh các tham số của database thì phải có quyền DBA trên server. Vì thế khi cần động đến các tham số là phải cân nhắc kỹ.

Leng Keng viết 13:17 ngày 01/10/2018

trước câu lệnh lấy dữ liệu minh chèn lệnh này vào SET sql_mode = ''; thì được. mà nêú disable nó server có ảnh hưởng gì không nhỉ hay có ảnh hưởng đến câu lệnh khác ko ý.?

Trang Xinh viết 13:16 ngày 01/10/2018

MySql khuyến cáo là nên để mặc định nó enable:
https://dev.mysql.com/doc/refman/5.7/en/sql-mode.html#sql-mode-changes

“In MySQL 5.7.5, the ONLY_FULL_GROUP_BY SQL mode is enabled by default because GROUP BY processing has become more sophisticated to include detection of functional dependencies.”

Bài liên quan
0