Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Bagaimana NOT LIKE Bekerja di MySQL

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 |
+---------------------+---------------------+

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Rails 3 ActiveRecord:Pesan berdasarkan jumlah asosiasi

  2. Ubah dan Setel Ulang Kata Sandi root MySQL

  3. Cari string dalam kolom teks di MySQL

  4. Basis data tidak diperbarui secara otomatis dengan MySQL dan Python

  5. Bagaimana saya bisa daftar memiliki data id yang sama dengan loop sementara di PHP?