Query Pencarian dengan SQL


Sistem pencarian merupakan sistem yang digunakan untuk mencari suatu data yang telah disimpan sebelumnya pada database,  untuk data yang sedikit mungkin tidak perlu, namun seiring bertambahnya data pencarian ini sangatlah penting untuk menemukan data yang kita inginkan, untuk menghemat waktu dan tepat tujuan/ data yang dicari sesuai dengan apa yang kita butuhkan,  Sebagai contoh: Google, siapa yang tidak tahu google ? mensin pencarian terbesar ini merupakan salah satu contohnya, Berikut ini merupakan beberapa contoh query untuk melakukan pencarian:
contoh 1:
SELECT tabel1.field1 FROM tabel1
WHERE tabel1.field1 LIKE "%pencarian%"
ORDER BY tabel1.field1 DESC LIMIT 20
Pada query tersebut "SELECT table1.field FROM tabel1" jadi yangditampilkan hanya field1 pada tabel1 dari tabel1 saja untuk menampilkan semua filed dapat diganti tabel1.fieldnya dengan *, selanjutnya WHERE tabel1.field1 LIKE "%pencarian%" jadi dengan kondisi filed1 pada tabel1 yang kita cari pada pencarian sesuai kata yang kita tuliskan dengan mengganti kata "pencarian" dengan kata yang ingin kita cari, ORDER BY tabel1.field1 DESC LIMIT 20 diurutkan berdasarkan filed1 pada tabel1 secara descending (a-z) dengan batas yang ditampilkan/dibatasi sebanyak 20 data.
Namun dengan query tersebut terkadang kita menggunakan like "%keyword%" tersebut di SQL Statement. apa yangkita cari tidak muncul contoh skenarionya, kita ingin mencari 20 top yang punya nama "eka" karena banyak maka akan ada yang namanya reka, deka dll belum lagi terdapat nama yang nama depan atau nama bleakangnya seperti eka haryanto, haryanto eka dll, sehingga pada akhirnya eka yang dicari tidak muncul di 20 top list/teratas, maka dari itu solusinya pake model query seperti berikut ini.
Contoh 2:
SELECT tbl_a.nama_anggota FROM tbl_a
WHERE tbl_a.nama_anggota LIKE "%eka%"
ORDER BY case
when tbl_a.nama_anggota like "eka" then 1
when tbl_a.nama_anggota like "eka%" then 2
when tbl_a.nama_anggota like "%eka" then 3
else CONCAT(4,tbl_a.nama_anggota) end LIMIT 20
Pada query tersebut "SELECT a.nama_anggota FROM tbl_a" jadi yangditampilkan hanya nama anggota pada tabel A dari tabel A saja, selanjutnya WHERE tbl_a.nama_anggota LIKE "%eka%" jadi dengan kondisi nama_anggota pada tabel A yang kita cari pada pencarian sesuai kata yang kita tuliskan dengan kata "eka" kata yang ingin kita cari, lalu ORDER BY case when tbl_a.nama_anggota like "eka" then 1 when tbl_a.nama_anggota like "eka%" then 2 when tbl_a.nama_anggota like "%eka" then 3 else CONCAT(4,tbl_a.nama_anggota) end LIMIT 20 dengan ini akan memaksa nama_anggota yang nama eka muncul paling atas diikuti varian belakang, varian depan dan sisanya, dengan batas yang ditampilkan/dibatasi sebanyak 20 data.

Demikianlah Query pencarian dengan SQL terdapat 2 contoh kasus, dimana contoh 1 merupakan contoh kasus yang umum, sedangkan contoh2 merupakan contoh kasus yang khusus,
apabila ada saran/mungkin ada statement lain yang lebih baik silahkan bebas berargumen namun dengan tatakrama yang baik ya, Happy Coding, wasalam  :)
Previous
Next Post »
Thanks for your comment