Rumah  >  Artikel  >  pangkalan data  >  Bagaimana untuk menyelesaikan perangkap pesanan mysql mengikut had

Bagaimana untuk menyelesaikan perangkap pesanan mysql mengikut had

WBOY
WBOYke hadapan
2023-05-27 11:03:221557semak imbas

Perangkap yang dihadapi semasa melakukan pertanyaan paging:

Masalah ditemui: Selepas mengisih satu medan tidak diindeks, had didapati bahawa apabila medan yang diisih mempunyai nilai yang sama dan berada dalam julat had, nilai yang diambil bukanlah nilai selepas pengisihan biasa,

<.> Maksudnya, apabila data yang disenaraikan dalam baris N boleh menjadi key1 atau key2, hasil pengisihan mungkin key1 atau key2.

mysql order by limit的坑怎么解决

Isih + hasil had (isih kunci tanpa indeks)

Tekan cnt untuk mendapatkan kata_kunci dan tiga hasil teratas:

mysql order by limit的坑怎么解决

Teks asal:

Jika berbilang baris mempunyai nilai yang sama dalam lajur ORDER BY, pelayan bebas untuk memulangkan baris tersebut dalam sebarang susunan, dan mungkin melakukannya secara berbeza bergantung pada keseluruhan rancangan pelaksanaan Dalam erti kata lain, susunan baris tersebut tidak ditentukan berkenaan dengan lajur tidak tersusun.

Ini bermakna jika lajur pesanan oleh mempunyai nilai yang sama, mysql akan memilih baris ini secara rawak, yang akan berbeza mengikut pelan pelaksanaan.

Penyelesaian: Susunan mengikut lajur mengandungi lajur indeks

Tambahkan id kunci utama di sini sebagai lajur pengisihan

Atas ialah kandungan terperinci Bagaimana untuk menyelesaikan perangkap pesanan mysql mengikut had. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam