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

Bagaimana Fungsi REGEXP_LIKE() Bekerja di MySQL

Di MySQL, REGEXP_LIKE() fungsi digunakan untuk menentukan apakah string cocok dengan ekspresi reguler atau tidak.

Fungsi mengembalikan 1 jika string cocok dengan ekspresi reguler yang disediakan, dan 0 jika tidak.

Sintaks

Sintaksnya seperti ini:

REGEXP_LIKE(expr, pat[, match_type])

Dimana expr adalah string input dan pat adalah ekspresi reguler yang Anda uji stringnya.

match_type opsional argumen memungkinkan Anda untuk memperbaiki ekspresi reguler. Misalnya, Anda dapat menggunakan match_type untuk menentukan pencocokan peka huruf besar-kecil atau tidak.

Contoh 1 – Penggunaan Dasar

Berikut ini contoh dasarnya:

SELECT REGEXP_LIKE('Cat', '.*') Result;

Hasil:

+--------+
| Result |
+--------+
|      1 |
+--------+

Dalam hal ini, ekspresi reguler kami menentukan karakter apa pun dalam urutan apa pun, jadi tentu saja kami mendapatkan kecocokan. Fungsi mengembalikan 1 untuk menunjukkan kecocokan.

Contoh 2 – Tidak Cocok

Berikut adalah contoh di mana string input tidak cocok dengan ekspresi reguler:

SELECT REGEXP_LIKE('Cat', 'b+') Result;

Hasil:

+--------+
| Result |
+--------+
|      0 |
+--------+

Dalam hal ini, ekspresi reguler kami menetapkan bahwa harus ada satu atau lebih b karakter dalam urutan apa pun. String input kami tidak berisi karakter ini dan karenanya 0 dikembalikan.

Contoh 3 – Mencocokkan Awal Sebuah String

Berikut adalah contoh di mana ekspresi reguler menentukan bahwa string harus dimulai dengan karakter tertentu:

SELECT REGEXP_LIKE('Cat', '^Ca') Result;

Hasil:

+--------+
| Result |
+--------+
|      1 |
+--------+

Dan inilah yang terjadi jika tidak ada yang cocok:

SELECT REGEXP_LIKE('Cat', '^Da') Result;

Hasil:

+--------+
| Result |
+--------+
|      0 |
+--------+

Contoh 4 – Kueri Basis Data

Fungsi ini dapat digunakan di WHERE klausa kueri basis data untuk mengembalikan hanya baris yang berisi pola:

SELECT AlbumId, AlbumName
FROM Albums
WHERE REGEXP_LIKE(AlbumName, '^Power');

Hasil:

+---------+------------+
| AlbumId | AlbumName  |
+---------+------------+
|       1 | Powerslave |
|       2 | Powerage   |
+---------+------------+

Berikut tabel lengkapnya:

SELECT AlbumId, AlbumName
FROM Albums;

Hasil:

+---------+--------------------------+
| AlbumId | AlbumName                |
+---------+--------------------------+
|       1 | Powerslave               |
|       2 | Powerage                 |
|       3 | Singing Down the Lane    |
|       4 | Ziltoid the Omniscient   |
|       5 | Casualties of Cool       |
|       6 | Epicloud                 |
|       7 | Somewhere in Time        |
|       8 | Piece of Mind            |
|       9 | Killers                  |
|      10 | No Prayer for the Dying  |
|      11 | No Sound Without Silence |
|      12 | Big Swing Face           |
|      13 | Blue Night               |
|      14 | Eternity                 |
|      15 | Scandinavia              |
|      16 | Long Lost Suitcase       |
|      17 | Praise and Blame         |
|      18 | Along Came Jones         |
|      19 | All Night Wrong          |
|      20 | The Sixteen Men of Tain  |
+---------+--------------------------+

Contoh 5 – match_type Argumen

Anda dapat memberikan argumen tambahan untuk menentukan jenis pencocokan. Ini memungkinkan Anda untuk menentukan hal-hal seperti apakah kecocokan peka huruf besar-kecil atau tidak, apakah akan menyertakan terminator baris atau tidak, dll.

Berikut adalah contoh menentukan kecocokan peka huruf besar-kecil dan kecocokan peka huruf besar/kecil:

SELECT 
  REGEXP_LIKE('Cat', '^ca', 'c') 'Case-Sensitive',
  REGEXP_LIKE('Cat', '^ca', 'i') 'Case-Insensitive';

Hasil:

+----------------+------------------+
| Case-Sensitive | Case-Insensitive |
+----------------+------------------+
|              0 |                1 |
+----------------+------------------+

match_type argumen dapat berisi karakter berikut:

c
Pencocokan peka huruf besar/kecil.
i
Pencocokan peka huruf besar/kecil.
m
Mode banyak baris. Kenali terminator garis di dalam string. Perilaku default adalah mencocokkan terminator baris hanya di awal dan akhir ekspresi string.
n
. karakter cocok dengan terminator garis. Standarnya adalah untuk . cocok untuk berhenti di akhir baris.
u
Akhir baris khusus Unix. Hanya karakter baris baru yang dikenali sebagai baris yang diakhiri dengan . , ^ , dan $ operator pertandingan.

Contoh Lainnya

Anda dapat melihat lebih banyak contoh ekspresi reguler dasar di Contoh REGEXP MySQL. REGEXP adalah sinonim untuk REGEXP_LIKE() , sehingga Anda dapat menggunakan contoh secara bergantian.

Lihat juga Sintaks Ekspresi Reguler dari dokumentasi MySQL.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Menghapus baris dengan MySQL LEFT JOIN

  2. Transmisikan dari VARCHAR ke INT - MySQL

  3. Replikasi MySQL untuk Ketersediaan Tinggi

  4. MySQL Ubah Collation dari Semua Tabel

  5. Tentukan file konfigurasi MySQL mana yang digunakan