Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Permintaan MySQL dengan alias tidak menggunakan indeks

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



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. kesalahan pengurutan dalam kueri gabungan

  2. Variabel array di mysql

  3. Apakah ada cara untuk mendapatkan id terakhir yang dimasukkan dari NON - kolom yang bertambah otomatis di MySQL?

  4. Mengembalikan gumpalan dengan json

  5. mysql - KESALAHAN 1064 (42000) saat menggunakan kata kunci sebagai nama kolom