Itu karena aliasnya. ORDER BY
dapat menggunakan indeks jika dipesan oleh sesuatu yang diindeks. Sementara ceremonyDate
tanggal dapat diindeks, YEAR(ceremoneyDate)
mengubah nilai ceremonyDate
untuk sesuatu yang sama sekali berbeda, jadi YEAR(ceremoneyDate)
tidak diindeks.
Dan karena Anda tidak dapat mengindeks alias, ini berarti bahwa untuk ORDER BY
untuk menggunakan indeks, itu harus berupa nama kolom sederhana, atau daftar nama kolom.
Anda harus dapat melakukan ini dan menggunakan indeks:
SELECT ordinal,YEAR(ceremonydate) as yr
FROM awardinfo
ORDER BY ceremonydate DESC LIMIT 1;
Tanpa mengetahui seperti apa tampilan data Anda, itu mungkin berhasil untuk Anda.
Info lebih lanjut:http://dev.mysql. com/doc/refman/5.0/en/order-by-optimization.html