Tại sao bạn cần đặt các cột do chính bạn tạo (ví dụ:"chọn 1 làm số") sau HAVING chứ không phải WHERE trong MySQL?
WHERE
được áp dụng trước GROUP BY
, HAVING
được áp dụng sau (và có thể lọc trên tổng hợp).
Nói chung, bạn có thể tham chiếu bí danh trong cả hai mệnh đề này, ngoại trừ MySQL
cho phép tham chiếu SELECT
bí danh cấp trong GROUP BY
, ORDER BY
và HAVING
.
Và có nhược điểm nào không thay vì viết "WHERE 1" (viết toàn bộ định nghĩa thay vì tên cột)
Nếu biểu thức được tính toán của bạn không chứa bất kỳ tổng hợp nào, hãy đặt nó vào WHERE
điều khoản có lẽ sẽ hiệu quả hơn.