Bagaimana Memilih Data Unik dan Mengambil Karakter Tertentu dari Sebuah Field di Basis Data MySQL

Hari ini saya menghadapi sebuah situasi yang cukup menarik ketika sedang mengambil karakter tertentu dari sebuah field dan ingin menampilkannya dengan menggunakan pernyataan SELECT DISTINCT di database MySQL. Misalkan saja kita sudah mempunyai ribuan record di dalam sebuah tabel dan ingin mengambil karakter tertentu dari awal hingga posisi tertentu yang dihitung sebanyak 6 karakter dari sebelah kanan dari semua karakter di field tadi, lalu menampilkannya dengan menggunakan pernyataan SELECT DISTINCT. Lalu, apa yang akan Anda lakukan? Baiklah, berikut ini solusi yang saya buat di database MySQL.

Mari kita lihat contoh berikut. Kita sudah memiliki sekitar 6 ribu record di sebuah tabel yang bernama mytable. Misalkan di salah satu field yang bernama myfield memiliki nilai yang berbeda tapi dengan struktur tertentu.

Sebagai contoh:

JAKARTA 10120
JAKARTA 10120
JAKARTA 10246
JAKARTA 10710
JAKARTA 11721
JAKARTA 11842
JAKARTA 12210
JAKARTA 12714
JAKARTA 13220
JAKARTA 13562
JAKARTA 13587
JAKARTA 14210
BOGOR 16125
BOGOR 16219
BOGOR 16242
BOGOR 16255
TANGERANG 15124
TANGERANG 15125
TANGERANG 15233
BEKASI 17121
BEKASI 17131
BEKASI 17142
BEKASI 17145
BEKASI 17233
...

lalu, saya ingin menampilkan hanya nilai kota yang unik saja, seperti di bawah ini:

JAKARTA
BOGOR
TANGERANG
BEKASI

Dengan kata lain, kita mengabaikan nilai kodepos dan hanya mengambil nilai kota yang unik. Inilah skrip SQL yang saya gunakan untuk mendapatkan nilai kota yang unik tadi:

SELECT DISTINCT(SUBSTR(myfield, 1, LENGTH(myfield)-6)) FROM `mytable`;

Skrip SQL tersebut memerintahkan MySQL untuk melakukan:
“Ambil nilai yang unik dari field myfield dimulai dari karakter pertama sampai posisi karakter keenam yang dihitung dari sebelah kanan field tersebut”.

Anda dapat melihat bahwa kita telah menyertakan tiga kata kunci khusus di skrip SQL tadi:

  1. DISTINCT, kata kunci ini memiliki maksud untuk mendapatkan nilai yang unik dari sekumpulan record yang kemungkinan memiliki nilai yang sama.
  2. SUBSTR, kata kunci ini memiliki maksud untuk mendapatkan karakter tertentu dari field tertentu yang dimulai dari posisi tertentu sampai posisi terakhir yang bisa kita tentukan
  3. LENGTH, kata kunci ini memiliki maksud untuk mendapatkan berapa banyak karakter yang terdapat di dalam sebuah field.

Skrip SQL tersebut berhasil saya coba di MySQL versi 5.0.51b yang diinstall satu paket dengan WAMPSERVER versi 2.0.

Share

2,870 kali dibacaCetak Artikel Ini Cetak Artikel Ini

Komentar

  1. Alif mengatakan:

    kaloo di database access gmna tuh scriptnya ?

Utarakan pikiran Anda

*


*