Rumah >pangkalan data >tutorial mysql >Pernyataan mysql pertanyaan penomboran

Pernyataan mysql pertanyaan penomboran

PHPz
PHPzasal
2023-05-11 15:23:38944semak imbas

Dalam pangkalan data, kami selalunya perlu melakukan pertanyaan paging pada data, mengawal nombor yang dipaparkan pada setiap halaman dan mengembalikan hasil yang sepadan.

MySQL menyediakan cara yang sangat mudah untuk melakukan pertanyaan halaman, menggunakan kata kunci LIMIT dan OFFSET.

LIMIT mentakrifkan bilangan baris rekod yang dikembalikan daripada hasil pertanyaan dan OFFSET mentakrifkan baris dari mana keputusan dikembalikan. Contohnya:

PILIH * DARI table_name LIMIT 10 OFFSET 20;

Pernyataan di atas akan mengembalikan baris 21 hingga 30 data daripada table_name_name.

Jika kita ingin memaparkan data dari 1 hingga 10 baris, hanya gunakan LIMIT terus:

PILIH * DARI table_name LIMIT 10;

MySQL juga menyediakan penggunaan lain Kaedah LIMIT menggunakan dua parameter untuk menentukan bilangan rekod yang akan dikembalikan dan nombor baris permulaan. Contohnya:

SELECT * FROM table_name LIMIT 20, 10;

Pernyataan di atas akan mengembalikan baris 21 hingga 30 data daripada table table_name.

Selain kata kunci LIMIT dan OFFSET, anda juga boleh menggunakan fungsi ROW_NUMBER() untuk pertanyaan halaman. Fungsi ini digunakan secara meluas dalam pangkalan data SQL Server dan Oracle, tetapi tidak begitu biasa dalam MySQL.

Menggunakan fungsi ini untuk pertanyaan halaman memerlukan mengisih hasil pertanyaan dahulu, dan kemudian menambah fungsi ROW_NUMBER(). Contohnya:

PILIH *, ROW_NUMBER() OVER (ORDER BY column_name) sebagai row_num
FROM table_name
LIMIT 20 OFFSET 0;

Pernyataan di atas akan berada dalam jadual table_name mengikut column column_name mengisih keputusan dan mengembalikan 20 baris pertama data.

Selain pertanyaan asas halaman, anda juga boleh menggunakan beberapa teknik lain untuk halaman, seperti menggunakan INNER JOIN atau LEFT JOIN untuk menggabungkan berbilang jadual untuk mendapatkan data yang lebih komprehensif.

Sebagai contoh, katakan kita perlu mencari rekod dalam dua jadual yang sepadan dengan keadaan tertentu. Kita boleh menggunakan pertanyaan bersarang untuk mengehadkan apabila INNER JOIN atau LEFT JOIN:

SELECT * FROM table_1
INNER JOIN table_2 ON table_1.id = table_2.id
WHERE condition
LIMITE 20 OFFSET 0 ;

Pernyataan di atas akan mencari rekod yang sepadan dalam jadual table_1 dan table_2 dan mengembalikan 20 baris pertama data.

Apabila melakukan pertanyaan paging, kami juga perlu memberi perhatian kepada beberapa isu prestasi dan kecekapan. Sebagai contoh, apabila menggunakan kata kunci OFFSET, MySQL perlu mengimbas keseluruhan keputusan yang ditetapkan untuk mencari rekod untuk dikembalikan.

Untuk meningkatkan kecekapan pertanyaan, anda boleh mengisih jadual menggunakan kunci utama atau indeks unik. Ini menjadikan pertanyaan lebih pantas dan boleh menggunakan indeks penutup untuk mengelak daripada menggunakan jadual sementara.

Secara amnya, apabila melakukan pertanyaan paging, kita harus mempertimbangkan keperluan setiap pertanyaan mengikut kategori, dan menggunakan kaedah yang sesuai untuk meningkatkan kecekapan pertanyaan dan memastikan ketepatan keputusan pertanyaan.

Atas ialah kandungan terperinci Pernyataan mysql pertanyaan penomboran. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel sebelumnya:redhat pasang mysqlArtikel seterusnya:redhat pasang mysql