Mysql – Cara Select Data dengan Kondisi ID / Level Tertentu

By , May 16, 2017,

Cara Select Data dengan Kondisi ID / Level Tertentu. Select atau milih data pada query database khususnya mysql banyak sekali cara yang bisa dilakukan. Namun untu kali ini kondisi yang saya alami adalah dengan memilih dengan isi baris dari rentan nilai tertentu tertentu.

Studi kasus yang saya alami Saya akan memilih atau menselect sebuah tabel user pada aplikasi login. Yang mana pada tabel tersebut terdiri dari:

Tb_user:

–          idUser

–          nama

–          username

–          password

–          level

Untuk level Pada kasus saya ada 3, yaitu:

–          level 1 = admin

–          level 2 = pabrikan

–          level 3 = pemasar

–          level 4 = pelanggan

Pada level tersebut saya akan menggunakan 2 level yaitu 2 dan 3 yang akan saya select pada kasus saya ini, yaitu pada aplikasi web service. Dan yang saya inginkan adalah ketika saya menginputkan username dan password maka yang terpilih antar pemasar dan juga pabrikan.

Query salah 1:

SELECT * FROM user WHERE username = ‘$us’ AND password = ‘$pass’ AND level = ‘2’ OR level = ‘3’

Pada query ini memang tidak sepenuhnya salah, namun yang  muncul malah user sebagai level admin.

Query salah 2:

SELECT * FROM user WHERE username = ‘$us’ AND password = ‘$pass’ AND level = ‘2,3’

Pada query diatas juga tidak sepenuhnya salah, namun yang terbaca ketika saya masukkan dengan level pabrikan berhasil, namun jika saya masuk dengan pemasaran tidak mendapat data pemasar, walaupun querynya benar.

Dan untuk menyelesaikan ini, saya menggunakan query berikut ini:

Query benar

SELECT * FROM user WHERE username = ‘$us’ AND password = ‘$pass’ AND level  IN (‘2’,’3’)

Nah dengan query diatas ternyata hasil yang di hasilkan dari login menggunakan username dan password memberikan keluaran yang dinginkan, yaitu jika login dengan akun pabrikan, maka dapat login, begitupula dengan akun pemasar. Dan solusinya adalah menggunakan fungsi IN pada mysql.

Leave a Reply

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