Operator logika pada mysql digunakan untuk mendapatkan hasil nilai boolean true, false atau null dari dua kondisi atau lebih dan biasanya digunakan bersamaan dengan operator perbandingan ataupun aritmatika, pada dasarnya, operator logika mysql tidak ada bedanya dengan materi gerbang logika yang biasa di ajarkan di kampus atau sekolah. Adapun beberapa operator logika pada mysql yang dapat digunakan diantaranya adalah sebagai berikut:
Operator | Deskripsi |
AND, && | Logika AND |
OR, || | Logika OR |
NOT, ! | Negasi nilai |
XOR | Logika XOR |
Logika AND
Logika and pada mysql membandingkan dua nilai yang keduanya bernilai benar (true), lebih jelasnya bisa lihat pada tabel berikut
Nilai 1 | Operator | Nilai 2 | Hasil |
True | && | True | True |
True | && | False | False |
False | && | True | False |
False | && | False | False |
Contoh pengunaan logika and mysql adalah sebagai berikut:
mysql> select id_dosen,nid, nama from dosen limit 5;
+----------+----------+-------------------------------------+
| id_dosen | nid | nama |
+----------+----------+-------------------------------------+
| 1 | 40010001 | Angga Sandra Saputra, DR. SKOM., MT |
| 2 | 50010001 | AA Ardiansyah, ST., MT |
| 3 | 60010001 | AA Sumanto, SE., MMSI |
| 4 | 70010006 | Aiman, SE., MM |
| 5 | 80010005 | Aldi Taher, ST., MT |
+----------+----------+-------------------------------------+
5 rows in set (0.00 sec)
mysql> select id_dosen, nid, nama from dosen where id_dosen = 1 and nid = 40010001;
+----------+----------+-------------------------------------+
| id_dosen | nid | nama |
+----------+----------+-------------------------------------+
| 1 | 40010001 | Angga Sandra Saputra, DR. SKOM., MT |
+----------+----------+-------------------------------------+
1 row in set (0.00 sec)
mysql> select id_dosen, nid, nama from dosen where id_dosen = 1 and nid = 40010002;
Empty set (0.00 sec)
mysql> select id_dosen, nid, nama from dosen where id_dosen = 2 and nid = 40010002;
Empty set (0.00 sec)
Dari contoh diatas hanya yang kedua kondisinya bernilai sama sehingga menghasilkan nilai true yang dapat di tampilkan.
Logika OR
Logika or pada mysql membandingkan dua nilai dimana jika kedua nilainya sama-sama salah maka menghasilkan salah (false) juga, lebih jelasnya lihat tabel berikut:
Nilai 1 | Operator | Nilai 2 | Hasil |
True | OR | True | True |
True | OR | False | True |
False | OR | True | True |
False | OR | False | False |
Contohnya sebagai berikut:
mysql> select id_dosen, nama from dosen where id_dosen = 1 or id_dosen = 1;
+----------+-------------------------------------+
| id_dosen | nama |
+----------+-------------------------------------+
| 1 | Angga Sandra Saputra, DR. SKOM., MT |
+----------+-------------------------------------+
1 row in set (0.00 sec)
mysql> select id_dosen, nama from dosen where id_dosen = 1 or id_dosen = 100;
+----------+-------------------------------------+
| id_dosen | nama |
+----------+-------------------------------------+
| 1 | Angga Sandra Saputra, DR. SKOM., MT |
+----------+-------------------------------------+
1 row in set (0.00 sec)
mysql> select id_dosen, nama from dosen where id_dosen = 100 or id_dosen = 100;
Empty set (0.00 sec)
Dari contoh diatas dapat dilihat bahwa pada logika OR hanya pada saat kondisi kedua nilainya salah maka akan bernilai false dan data tidak akan ditampilkan.
Logika XOR (Exclusive - OR)
Logika XOR pada mysql membandingkan dua nilai dimana jika kedua nilainya sama-sama benar, atau salah maka hasilnya akan salah (false), lebih jelasnya lihat tabel berikut:
Nilai 1 | Operator | Nilai 2 | Hasil |
True | XOR | True | False |
True | XOR | False | True |
False | XOR | True | True |
False | XOR | False | False |
Contohnya sebagai berikut:
mysql> select id_dosen, nama from dosen where id_dosen = 1 xor id_dosen = 1;
Empty set (0.00 sec)
mysql> select id_dosen, nama from dosen where id_dosen = 1 xor id_dosen = 100;
+----------+-------------------------------------+
| id_dosen | nama |
+----------+-------------------------------------+
| 1 | Angga Sandra Saputra, DR. SKOM., MT |
+----------+-------------------------------------+
1 row in set (0.00 sec)
mysql> select id_dosen, nama from dosen where id_dosen = 100 xor id_dosen = 1;
+----------+-------------------------------------+
| id_dosen | nama |
+----------+-------------------------------------+
| 1 | Angga Sandra Saputra, DR. SKOM., MT |
+----------+-------------------------------------+
1 row in set (0.00 sec)
mysql> select id_dosen, nama from dosen where id_dosen = 100 xor id_dosen = 100;
Empty set (0.00 sec)
Dari contoh diatas dapat dilihat bahwa jika kedua nilainya benar atau salah maka hasilnya juga akan salah (false) dan tidak akan menampilkan data.
Logika NOT atau !
Logika not pada mysql adalah untuk memberikan hasil negasi pada nilai yang di cari, contohnya seperti berikut:
mysql> select id_dosen, nama from dosen where id_dosen != 1 limit 5;
+----------+------------------------+
| id_dosen | nama |
+----------+------------------------+
| 2 | AA Ardiansyah, ST., MT |
| 3 | AA Sumanto, SE., MMSI |
| 4 | Aiman, SE., MM |
| 5 | Aldi Taher, ST., MT |
| 6 | Afisyah, S.Psi., MSI |
+----------+------------------------+
5 rows in set (0.00 sec)
mysql> select id_dosen, nama from dosen where nama not like "A%" limit 3;
+----------+---------------------------------------------+
| id_dosen | nama |
+----------+---------------------------------------------+
| 15 | Boy Chandra, ST,MMSI,MSC |
| 16 | Ben Rusdi Maulana Setya Putra, S.SI., M.T.I |
| 17 | Mia Al Wiyah, S.T., M. ENG, PH. D |
+----------+---------------------------------------------+
3 rows in set (0.00 sec)
Perbedaan dari operator NOT atau ! ada pada penggunaannya dimana operator not dengan tanda seru ! ini bisa digunakan dengan operator sama dengan (=) namun tidak dengan like, sedangkan not tidak dapat digunakan bersamaan dengan operator sama dengan (=) namun dapat digunakan bersama operator like, untuk lebih jelasnya dapat melihat contoh pada penggunaan operator perbandingan. Dari semua contoh diatas, kita juga dapat membuat klausa where dengan lebih dari satu operator logika, contohnya seperti berikut ini:
mysql> select id_dosen, nama from dosen where id_dosen = 1 and id_dosen = 2 or nama like "%s";
+----------+-----------------------+
| id_dosen | nama |
+----------+-----------------------+
| 11 | Aminah, M.KES |
| 54 | Yulia, S.S., M.SAS |
| 55 | Velana, S.S., M.SAS |
| 56 | Ameridan, S.S., M.SAS |
| 57 | Solas, S.S., M.SAS |
| 59 | Anders, S.S., M.SAS |
+----------+-----------------------+
6 rows in set (0.00 sec)
mysql> select id_dosen, nama from dosen where id_dosen = 1 or id_dosen > 65 and
id_dosen not in (66) or nama like "%r";
+----------+-------------------------------------+
| id_dosen | nama |
+----------+-------------------------------------+
| 1 | Angga Sandra Saputra, DR. SKOM., MT |
| 31 | Kartini DR. DR SP.KFR |
| 67 | Hana, S.H,M.H |
| 68 | Talita, S.H,M.H |
| 69 | Cullen Stanton, S.H,M.H |
| 70 | Anora, S.H,M.H |
| 71 | Ludwig |
+----------+-------------------------------------+
7 rows in set (0.00 sec)
Itulah sejumlah pembahasan dari operator logika mysql serta cara pengunaan operator logika pada mysql, jangan sungkan untuk bertanya jika masih ada hal yang belum dipahami.