[Tutorial SQL DATABASE ] Kode untuk Menghitung Total record di MySQL


 

Sering kali kita memerlukan jumlah data/record yang kita miliki dalam satu table untuk berbagai keperluan, misal untuk keperluan paging, untuk kebutuhan reporting, dan lain-lain. Nah, cara gimana akan saya jelaskan dibawah ini.

Contoh :
tbl_mhs

id_mhs Nama tahun_masuk
1 Charles 2004
2 Susi 2003
3 Liliana 2004
4 Joko 2004
5 Merry 2007


Kita dapat menggunakan fungsi count( nama field ) yang dimiliki oleh MySql . Fungsi count ini digunakan untuk menghitung jumlah baris sesuai dengan kondisi dalam query kita. Misalkan sekarang saya mau menghitung jumlah mahasiswa yang tahun_masuknya 2007, maka dapat menggunakan query :
SELECT count(id_mhs) FROM tbl_mhs WHERE tahun_masuk='2007';
count(id_mhs) => sebenarnya tidak harus menggunakan id_mhs, kita dapat menggunakan field lain, yang penting ada field yang digunakan untuk dihitung, atau bisa juga menggunakan count(*).

Nah, cara di atas adalah cara sederhana untuk menghitung jumlah record. Sekarang akan saya jelaskan untuk kasus paging , biasanya untuk pertama kali kita lakukan 'select' data terlebih dahulu yang mana datanya untuk ditampilkan pada halaman website, setelah itu kita cari total record di database untuk keperluan generate link paging halaman,contoh seperti query dibawah ini :
query 1 : select * from tbl_mhs where tahun_masuk>=2004 limit 10,2;
query 2 : select  count(id_mhs) from tbl_mhs where tahun_masuk>=2004;

Pertama kita lakukan select data dengan limit sesuai sistem paging masing-masing ( ini dilakukan biasanya untuk mendapatkan record-record untuk ditampilkan ke halaman website), kemudian diperlukan data total record yang dimiliki table (tanpa limit) tetapi memiliki kondisi(where) yang sama, maka dilakukan query kedua. Cara ini bisa dilakukan tapi menurut saya kurang efektif karena kita melakukan statement pengambilan data ke table sebanyak 2x. Nah, ada cara supaya lebih efektif, yaitu :

query 1 :  SELECT SQL_CALC_FOUND_ROWS * FROM tbl_mhs where tahun_masuk>=2004 limit 10,2;
query 2 : SELECT FOUND_ROWS();
Dengan menambahkan SQL_CALC_FOUND_ROWS setelah 'select' maka kita bisa mendapatkan total record yang ada di dalam table di luar limit yang diberikan pada query 1. Hanya dengan memanggil query kedua (yg menggunakan perintah FOUND_ROWS() ) , kita bisa mendapatkan total record tanpa harus melakukan statement pengambilan data ulang dan diberi perintah count. Dari contoh table di atas , maka  perintah FOUND_ROWS() akan mengembalikan angka 4 (record yang memiliki tahun_masuk lebih besar sama dengan 2004 ada 4 record), walaupun pada query 1 menggunakan limit 10,2.

Mudah-mudahan tips ini berguna  .
Ade White Flash

dalam kehidupan kita pasti akan melihat kita atau orang lain merasakan keberhasilan, namun percaylah bahwa disetiap oang memiliki keberhasilan sendiri-sendiri

Posting Komentar

Silahkan isi komentar jika ada pertanyaan, saran atau kritik. Bantu kami untuk lebih berkembang.

Lebih baru Lebih lama