Blog Posts » MySQL » MySQL Check Data

MySQL Check Data

Ketika berhubungan dengan MySQL kadang kita menggunakan suatu query untuk mengecek apakah data sudah tersimpan atau belum.

Misal kita mempunyai tabel user dengan field (kolom) username.
[Textarea][RAW][Download]

  1. CREATE TABLE user (
  2. username VARCHAR(50) NOT NULL,
  3. PRIMARY KEY username(username)
  4. ) ENGINE = MYISAM;


Sebagian orang mungkin menggunakan cara sbb:
Cara 1
[Textarea][RAW][Download]

  1. $query = mysql_query("SELECT * FROM user WHERE username = 'username'");
  2. $check = mysql_num_rows($query);
  3. if ($check) {
  4. // jika data ditemukan
  5. }
  6. else {
  7. // jika data tidak ditemukan
  8. }

Cara 2
[Textarea][RAW][Download]

  1. $query = mysql_query("SELECT COUNT(*) FROM user WHERE username = 'username'");
  2. $check = mysql_fetch_array($query);
  3. if ($check[0]) {
  4. // jika data ditemukan
  5. }
  6. else {
  7. // jika data tidak ditemukan
  8. }


Karena kita hanya akan mengecek data dengan tanpa mengambil maka Cara 1 tidak efisien karena dengan cara tsb akan terjadi dua proses yaitu mengambil data (SELECT) dan menghitung (mysql_num_rows()). Sedangkan Cara 2 sudah lumayan bagus tetapi juga terjadi dua proses yaitu menghitung (COUNT(*)) dan mengambil hasil hitungan (SELECT).

Berikut ini adalah cara yang terbaik untuk mengecek data.
[Textarea][RAW][Download]

  1. $query = mysql_query("SELECT 1 FROM user WHERE username = 'username'");
  2. $check = mysql_fetch_array($query);
  3. if ($check[0]) {
  4. // jika data ditemukan
  5. }
  6. else {
  7. // jika data tidak ditemukan
  8. }


Hanya terjadi satu proses. Dan jika SELECT 1 berhasil maka akan menampilkan boolean 1 (true) dan jika tidak maka akan NULL (false). Pakailah cara ini jika Anda mempunyai banyak data pasti akan lebih cepat dibanding kedua cara diatas. Salam :)