Có vẻ như trong phiên bản 5.7 của MySQL, họ đã thêm một điều khó chịu (hoặc vẫn là) một headache thực cho những người xử lý SQL Server.SELECT DISTINCT và ORDER BY trong MySQL
Điều này là: MySQL ném lỗi, khi bạn cố gắng SELECT DISTINCT
hàng cho một nhóm cột và muốn ORDER BY
một nhóm cột khác. Trước đây, trong phiên bản 5.6 và thậm chí trong một số phiên bản 5.7, bạn có thể làm điều này, nhưng bây giờ nó bị cấm (ít nhất là theo mặc định).
Tôi hy vọng có một số cấu hình, một số biến mà chúng tôi có thể đặt để làm cho nó hoạt động. Nhưng tiếc là tôi không biết rằng biến khó chịu. Tôi hy vọng ai đó biết điều đó.
EDIT
Đây là một số truy vấn điển hình trong trường hợp của tôi mà làm việc theo nghĩa đen trong nhiều năm (cho đến khi xây dựng mới nhất của MySQL 5.7):
SELECT DISTINCT a.attr_one, a.attr_two, a.attr_three, b.attr_four FROM table_one a
LEFT JOIN table_two b ON b.some_idx = a.idx
ORDER BY b.id_order
Và, quả thật vậy, nếu bây giờ tôi bao gồm b.id_order
đến phần SELECT
(như MySQL gợi ý làm), sau đó những gì tôi sẽ nhận được, sẽ là rác rưởi.
Đây có phải là truy vấn thực tế? – Strawberry
Vâng, đó là một truy vấn thế giới thực. – Jacobian