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

Mysql:Urutan hasil dengan pilih dari berbeda dengan urutan hasil dengan pilih * dari

Ini benar dan dirancang:jika Anda tidak meminta pengurutan, server tidak akan repot menyortir (penyortiran bisa menjadi operasi yang mahal), dan itu akan mengembalikan baris dalam urutan apa pun yang dianggap cocok. Tanpa urutan yang diminta, cara catatan diurutkan bahkan dapat berbeda dari satu kueri ke kueri berikutnya (walaupun kemungkinannya tidak terlalu besar).

Urutannya jelas tidak acak - hanya dengan cara apa pun baris keluar dari kueri, dan seperti yang Anda lihat, bahkan modifikasi kecil dapat mengubah ketidakteraturan ini secara signifikan. Urutan "tidak terdefinisi" ini bergantung pada implementasi, tidak dapat diprediksi, dan tidak boleh diandalkan.

Jika Anda ingin elemen diurutkan, gunakan ORDER BY klausa (itu tujuannya) - mis.

SELECT name FROM difficulties ORDER BY name ASC;

Itu akan selalu mengembalikan hasil yang diurutkan berdasarkan nama, dalam urutan menaik. Atau, jika Anda ingin mereka diurutkan berdasarkan kunci utama, terakhir di atas, gunakan:

SELECT name FROM difficulties ORDER BY id DESC;

Anda bahkan dapat mengurutkan berdasarkan fungsi - jika Anda benar-benar ingin urutan acak, lakukan ini (peringatan:kinerja mengerikan dengan tabel besar):

SELECT name FROM difficulties ORDER BY RAND();

Untuk detail lebih lanjut lihat tutorial ini dan dokumentasi .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kesulitan memutuskan untuk mengidentifikasi atau tidak mengidentifikasi hubungan

  2. MySQL membuat database jika tidak ada

  3. Temukan nilai paling sering di kolom SQL

  4. MySQLdb dengan Python:Tidak dapat terhubung ke server MySQL di 'localhost'

  5. Menyimpan nilai hash SHA1 di MySQL