Đó là vì bí danh. ORDER BY
có thể sử dụng một chỉ mục nếu nó được sắp xếp theo thứ gì đó được lập chỉ mục. Trong khi ceremonyDate
ngày có thể được lập chỉ mục, YEAR(ceremoneyDate)
thay đổi giá trị của ceremonyDate
sang một cái gì đó hoàn toàn khác, vì vậy YEAR(ceremoneyDate)
không được lập chỉ mục.
Và vì bạn không thể lập chỉ mục một bí danh, điều này có nghĩa là để cho một ORDER BY
để sử dụng một chỉ mục, nó phải là một tên cột đơn giản hoặc danh sách các tên cột.
Bạn có thể thực hiện việc này và sử dụng chỉ mục:
SELECT ordinal,YEAR(ceremonydate) as yr
FROM awardinfo
ORDER BY ceremonydate DESC LIMIT 1;
Nếu không biết dữ liệu của bạn trông như thế nào, thay vào đó, dữ liệu đó có thể phù hợp với bạn.
Thông tin thêm: http://dev.mysql. com / doc / refman / 5.0 / en / order-by -mize.html