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 .