Di MySQL, Anda dapat menggunakan NOT LIKE untuk melakukan negasi dari LIKE operator. Dengan kata lain, NOT LIKE mengembalikan hasil sebaliknya ke LIKE .
Jika string cocok dengan pola yang diberikan, hasilnya adalah 0 , jika tidak maka 1 .
Polanya tidak harus berupa string literal. Fungsi ini dapat digunakan dengan ekspresi string dan kolom tabel.
Sintaks
Sintaksnya seperti ini:
expr NOT LIKE pat [ESCAPE 'escape_char']
Dimana expr adalah string input dan pat adalah pola yang Anda gunakan untuk menguji string.
ESCAPE opsional klausa memungkinkan Anda untuk menentukan karakter pelarian. Karakter escape default adalah \ , jadi Anda dapat menghilangkan klausa ini jika Anda tidak perlu mengubahnya.
Operator ini setara dengan melakukan hal berikut:
NOT (expr LIKE pat [ESCAPE 'escape_char'])
Contoh 1 – Penggunaan Dasar
Berikut adalah contoh cara menggunakan operator ini dalam SELECT pernyataan:
SELECT 'Charlie' NOT LIKE 'Char%';
Hasil:
+----------------------------+ | 'Charlie' NOT LIKE 'Char%' | +----------------------------+ | 0 | +----------------------------+
Dalam hal ini, nilai yang dikembalikan adalah 0 yang berarti bahwa string input dilakukan benar-benar cocok dengan polanya.
Contoh 2 – Dibandingkan dengan LIKE
Ini dibandingkan dengan LIKE :
SELECT 'Charlie' LIKE 'Char%' AS 'Like', 'Charlie' NOT LIKE 'Char%' AS 'Not Like';
Hasil:
+------+----------+ | Like | Not Like | +------+----------+ | 1 | 0 | +------+----------+
Contoh 3 – Sintaks yang Setara
Seperti yang disebutkan, NOT LIKE adalah setara dengan menggunakan NOT operator logika terhadap LIKE operator. Inilah yang saya maksud:
SELECT
'Charlie' NOT LIKE 'Char%' AS 'NOT LIKE syntax',
NOT ('Charlie' LIKE 'Char%') AS 'Equivalent syntax'; Hasil:
+-----------------+-------------------+ | NOT LIKE syntax | Equivalent syntax | +-----------------+-------------------+ | 0 | 0 | +-----------------+-------------------+
Contoh 4 – Contoh Basis Data
LIKE operator sering digunakan dalam WHERE klausa dari SELECT pernyataan ketika menanyakan database. Oleh karena itu, NOT LIKE dapat digunakan dengan cara yang sama.
Saat kami menggunakan NOT LIKE dengan cara ini, ini mempersempit hasil menjadi hanya catatan yang tidak cocok, tetapi kami melihat hasil sebenarnya (bukan hanya 1 atau 0 ).
Berikut adalah contoh bagaimana kita dapat menggunakan operator ini dalam query database:
SELECT ArtistId, ArtistName FROM Artists WHERE ArtistName NOT LIKE 'B%';
Hasil:
+----------+------------------------+ | ArtistId | ArtistName | +----------+------------------------+ | 1 | Iron Maiden | | 2 | AC/DC | | 3 | Allan Holdsworth | | 5 | Devin Townsend | | 6 | Jim Reeves | | 7 | Tom Jones | | 8 | Maroon 5 | | 9 | The Script | | 10 | Lit | | 12 | Michael Learns to Rock | | 13 | Carabao | | 14 | Karnivool | +----------+------------------------+
Dalam hal ini, itu adalah kueri sederhana yang mengembalikan semua artis yang namanya tidak mulai dengan huruf B .
Berikut daftar lengkap artis di tabel itu:
SELECT ArtistId, ArtistName FROM Artists;
Hasil:
+----------+------------------------+ | ArtistId | ArtistName | +----------+------------------------+ | 1 | Iron Maiden | | 2 | AC/DC | | 3 | Allan Holdsworth | | 4 | Buddy Rich | | 5 | Devin Townsend | | 6 | Jim Reeves | | 7 | Tom Jones | | 8 | Maroon 5 | | 9 | The Script | | 10 | Lit | | 11 | Black Sabbath | | 12 | Michael Learns to Rock | | 13 | Carabao | | 14 | Karnivool | | 15 | Birds of Tokyo | | 16 | Bodyjar | +----------+------------------------+
Jadi jika kita menghapus NOT (yaitu kami hanya menggunakan LIKE ) kita mendapatkan hasil ini:
SELECT ArtistId, ArtistName FROM Artists WHERE ArtistName LIKE 'B%';
Hasil:
+----------+----------------+ | ArtistId | ArtistName | +----------+----------------+ | 4 | Buddy Rich | | 11 | Black Sabbath | | 15 | Birds of Tokyo | | 16 | Bodyjar | +----------+----------------+
Contoh 5 – Escape dengan Karakter Backslash
Karakter garis miring terbalik (\ ) dapat digunakan untuk menghindari salah satu karakter wildcard (_ dan % ). Berikut ini contoh penelusuran dengan dan tanpa karakter escape:
SELECT 'usr+123' NOT LIKE 'usr_123' AS 'Without escape', 'usr+123' NOT LIKE 'usr\_123' AS 'With escape';
Hasil:
+----------------+-------------+ | Without escape | With escape | +----------------+-------------+ | 0 | 1 | +----------------+-------------+
Contoh 6 – ESCAPE Klausa
Anda juga dapat menggunakan ESCAPE klausa untuk menentukan karakter escape kustom Anda sendiri. Ini contohnya:
SELECT 'usr_123' NOT LIKE 'usr|_123' ESCAPE '|' AS 'String 1', 'usr+123' NOT LIKE 'usr|_123' ESCAPE '|' AS 'String 2';
Hasil:
+----------+----------+ | String 1 | String 2 | +----------+----------+ | 0 | 1 | +----------+----------+
Contoh 7 – Ekspresi Numerik
Operator ini dapat digunakan pada ekspresi numerik. Ini contohnya:
SELECT 1234 NOT LIKE '12%', 1234 NOT LIKE '12_';
Hasil:
+---------------------+---------------------+ | 1234 NOT LIKE '12%' | 1234 NOT LIKE '12_' | +---------------------+---------------------+ | 0 | 1 | +---------------------+---------------------+