Query MySQL untuk Menampilkan Nomor Terakhir

MySQL

MySQL

Terdapat sebuah tabel pelanggan yang mempunyai primary key kd_pelanggan. Format kd_pelanggan yang disimpan adalah berupa 5 digit karakter, diawali dengan huruf “P” dan diikuti dengan nomor urut pelanggan (sesuai dengan nomor urut pengentrian data). Contohnya P0001, P0012, P0110, dst.

Nah untuk menjaga agar data kode pelanggan tetap terurut maka biasanya kita akan meng-generate kode pelanggan secara otomatis pada saat proses pengentrian data pelanggan. Kode yang ditampilkan otomatis tersebut diambil berdasarkan kode terakhir yang ditambah 1 (satu). Bagaimana teknik untuk mendapatkan kode terakhir yang ditambah 1 tersebut??

Teknik Dasar

Teknik untuk menghasilkan kode berdasarkan urutan terakhir sebenarnya cukup beragam. Yang paling umum dan paling banyak dilakukan adalah dengan beberapa langkah sbb:

  1. Ambil data pelanggan terakhir dengan perintah “SELECT kd_pelanggan FROM pelanggan DESC LIMIT 1″ dan masukkan ke dalam variabel PHP.
  2. Ambil 4 digit terakhir dari data pelanggan terakhir tersebut (buang karakter “P“), kemudian ditambahkan 1.
  3. Tambahkan angka nol (0) sedemikian hingga kode pelanggan menjadi 4 digit dan selanjutnya gabungkan kembali dengan karakter “P“.
  4. Tampilkan kode pelanggan baru pada form inputan.

Teknik perintah SQL

Ternyata cukup gampang, tinggal mengeksekusi perintah SQL sebagai berikut:

SELECT CONCAT("P", LPAD((RIGHT(MAX(id_pelanggan),4)+1),4,'0'))
FROM pelanggan;

Setidaknya terdapat 4 (empat) fungsi SQL yang kita gunakan dalam perintah diatas:

  • MAX(ekspresi), digunakan untuk mengambil nilai terbesar dari suatu ekspresi / sejumlah field.
  • RIGHT (str, len), digunakan untuk memotong suatu string str sepanjang len dari sebelah kanan.
  • LPAD (str, len, chr), digunakan untuk menambahkan chr ke dalam string str sedemikian hingga string tersebut panjangnya menjadi len.
  • CONCAT (str1, str2, …), digunakan untuk menggabungkan 2 buah string atau lebih.

Selamat mencoba

Tags:,
Comments
  1. 5 years ago
  2. 1 year ago
  3. 1 year ago

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>