Giải pháp không sử dụng UNION / CASE
SELECT * FROM posts
ORDER BY
DATE(published_at)=DATE(NOW()) DESC,
DATE(published_at)<DATE(NOW()) DESC,
DATE(published_at)>DATE(NOW()) ASC`
kiểm tra xem điều này có hiệu quả không. Nó hoạt động tốt với dữ liệu được kích thích. Bạn có thể thay đổi mô tả thành asc theo yêu cầu sắp xếp của bạn cho các ngày trong quá khứ và tương lai