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

Mengapa hasil dari kueri SQL tidak kembali dalam urutan yang saya harapkan?

Urutan kueri dapat dipaksakan dengan menggunakan Klausa 'Pesan berdasarkan' dalam pernyataan. Database SQL tidak benar-benar memahami urutan apa yang Anda masukkan, atau menyimpan data dalam urutan tertentu. Ini berarti Anda perlu memberi tahu SQL urutan item yang Anda inginkan. Misalnya:

Select * from Table
  order by column1 desc

Anggap saja seperti menyerahkan beberapa barang kepada teman Anda untuk dipegang - dia akan memiliki semuanya untuk Anda nanti, tetapi dia menyimpannya di suatu tempat untuk sementara waktu. Dia mungkin memindahkannya saat Anda tidak ingin memberi ruang untuk sesuatu yang lain, atau mungkin mengembalikannya dengan urutan yang sama seperti yang Anda berikan padanya, tetapi Anda tidak menyuruhnya untuk mengaturnya, jadi dia tidak melakukannya. .

Basis data harus dapat memindahkan berbagai hal di latar belakang, sehingga cara pembuatannya secara intrinsik tidak mengetahui urutan apa pun - Anda perlu mengetahui urutannya saat memberikannya ke basis data, sehingga Anda dapat meletakkannya kembali di pesanan yang Anda inginkan nanti. Klausa pesanan memungkinkan SQL untuk memaksakan perintah pada data, tetapi tidak mengingat atau memilikinya sendiri.

Poin penting :Bahkan ketika SQL mengembalikan item dalam urutan yang benar tanpa perintah demi pernyataan 1 juta kali terakhir, itu tidak menjamin bahwa hal itu akan dilakukan. Bahkan jika indeks berkerumun ada di atas meja, hasilnya tidak dijamin akan dikembalikan dalam urutan yang Anda harapkan. Terutama ketika versi SQL berubah, tidak secara eksplisit menggunakan klausa order by dapat merusak program yang menganggap kueri akan sesuai urutan yang mereka inginkan!



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL Performance UNION vs OR

  2. KEDUA() Contoh – MySQL

  3. Tidak dapat mengembalikan hasil dari prosedur tersimpan menggunakan kursor Python

  4. Kembalikan baris hanya jika nilainya tidak ada

  5. Cara Mengatur Kumpulan Karakter dan Susunan Kolom di MySQL