MySQL String Pattern Matching

Minggu, 06 Maret 2011
MySQL menyediakan pencocokan pola standar SQL, serta utilitas berbasis Unix seperti vi, grep dan sed diperpanjang pola regular expression yang sesuai format.

Pencocokan pola standar SQL

pencocokan pola SQL memungkinkan Anda untuk menggunakan "_" cocok dengan satu karakter apapun, dan "%" setiap pertandingan jumlah karakter (termasuk nol karakter). Dalam MySQL, SQL modus default adalah mengabaikan kasus. Berikut ini beberapa contoh. Perhatikan bahwa ketika Anda menggunakan mode SQL, Anda tidak dapat menggunakan = atau! =; Penggunaan SEPERTI atau TIDAK SEPERTI operator perbandingan.

Sebagai contoh, dalam tabel pet, dalam rangka untuk mengidentifikasi dengan "b" di awal nama:

Mysql SELECT conf config generate.sh bin cadangan data eshow_sitemap.html tmp svn log DARI Maint sitemap.html pet WHERE nama LIKE "% b";

+--------+--------+---------+------+------------+- -----------+

| Nama | pemilik | spesies | seks | kelahiran | kematian |

+--------+--------+---------+------+------------+- -----------+

| | Buffy Harold | | anjing f | 1989/05/13 | | NULL

| Bowser | Diane | dog | m | 1989/08/31 | 1995/07/29 |

+--------+--------+---------+------+------------+- -----------+

Dalam rangka untuk mencari tahu dengan "y" pada akhir nama:

Mysql SELECT conf config generate.sh bin cadangan data eshow_sitemap.html tmp svn log DARI Maint sitemap.html pet WHERE nama LIKE "% fy";

+--------+--------+---------+------+------------+- ------+

| Nama | pemilik | spesies | seks | kelahiran | kematian |

+--------+--------+---------+------+------------+- ------+

| | Fluffy Harold | | kucing f | 1993/02/04 | | NULL

| | Buffy Harold | | anjing f | 1989/05/13 | | NULL

+--------+--------+---------+------+------------+- ------+

Untuk mengetahui berisi w "" atas nama:

Mysql SELECT conf config generate.sh bin cadangan data eshow_sitemap.html tmp svn log DARI Maint sitemap.html pet WHERE nama LIKE "%% b";

+----------+-------+---------+------+------------+ ------------+

| Nama | pemilik | spesies | seks | kelahiran | kematian |

+----------+-------+---------+------+------------+ ------------+

| Claws | Gwen | cat m | | 1994/03/17 | | NULL

| Bowser | Diane | dog | m | 1989/08/31 | 1995/07/29 |

| Whistler | Gwen | bird | NULL | 1997/12/09 | NULL |

+----------+-------+---------+------+------------+ ------------+

Untuk mencari tahu lima karakter mengandung nama, gunakan "_" karakter mode:

Mysql SELECT conf config generate.sh bin cadangan data eshow_sitemap.html tmp svn log DARI Maint sitemap.html pet WHERE nama LIKE "_____";

+-------+--------+---------+------+------------+-- -----+

| Nama | pemilik | spesies | seks | kelahiran | kematian |

+-------+--------+---------+------+------------+-- -----+

| Claws | Gwen | cat m | | 1994/03/17 | | NULL

| | Buffy Harold | | anjing f | 1989/05/13 | | NULL

+-------+--------+---------+------+------------+-- -----+

Extended pencocokan pola regular expression

MySQL pola yang cocok disediakan oleh jenis lainnya adalah penggunaan kalimat biasa diperpanjang. Ketika Anda menguji jenis pencocokan pola, dan TIDAK menggunakan regexp regexp operator (atau RLIKE dan TIDAK

RLIKE, mereka adalah sinonim).

ekspresi reguler Extended beberapa karakter adalah:

"" Sama setiap karakter tunggal..

Sebuah "[...]" kelas karakter dalam tanda kurung siku sesuai karakter apapun. Misalnya, "abc []" cocok "" a, "b" atau "c". Untuk nama berbagai karakter, menggunakan "sebuah -."

"[Az]" pertandingan setiap huruf kecil, dan "[0-9]" cocok nomor apapun.

"Data config conf bin Cadangan generate.sh eshow_sitemap.html tmp svn log Maint sitemap.html" cocok dengan nol atau lebih hal-hal di depannya. Misalnya, "x *" cocok sejumlah "x" karakter, "[0-9] *" cocok sejumlah tokoh, dan ".*" cocok sejumlah

Jumlah apa pun.

Kalimat biasa adalah case-sensitive, tetapi jika Anda ingin, Anda dapat menggunakan dua cara untuk menulis sebuah kelas karakter cocok. Sebagai contoh, "[aA]" cocok huruf kecil atau huruf besar "a" dan "[a-zA-Z]" kuda

Dengan dua surat tertulis apapun.

Jika tampaknya pengujian nilai tempat apapun, modus untuk mencocokkan (selama mereka cocok dengan nilai keseluruhan, SQL pencocokan pola).

Untuk mencari model yang akan diuji sehingga harus sesuai nilai awal atau akhir awal model dengan menggunakan "^" atau akhir modus "$."

Untuk menunjukkan bagaimana diperpanjang kalimat biasa bekerja, SEPERTI permintaan yang ditunjukkan di atas dalam menulis ulang menggunakan regexp berikut:

Dalam rangka untuk mencari tahu dengan "b" di awal nama, gunakan "^" cocok dengan awal nama, dan "[bB]" cocok huruf kecil atau huruf besar "b":

Mysql SELECT conf config generate.sh bin cadangan data eshow_sitemap.html tmp svn log DARI Maint sitemap.html pet WHERE nama regexp "^ [bB]";

+--------+--------+---------+------+------------+- -----------+

| Nama | pemilik | spesies | seks | kelahiran | kematian |

+--------+--------+---------+------+------------+- -----------+

| | Buffy Harold | | anjing f | 1989/05/13 | | NULL

| Bowser | Diane | dog | m | 1989/08/31 | 1995/07/29 |

+--------+--------+---------+------+------------+- -----------+

Dalam rangka untuk mencari tahu dengan "y" di akhir nama, gunakan "$" sesuai dengan nama akhir:

Mysql SELECT conf config generate.sh bin cadangan data eshow_sitemap.html tmp svn log DARI Maint sitemap.html pet WHERE nama regexp "fy $";

+--------+--------+---------+------+------------+- ------+

| Nama | pemilik | spesies | seks | kelahiran | kematian |

+--------+--------+---------+------+------------+- ------+

| | Fluffy Harold | | kucing f | 1993/02/04 | | NULL

| | Buffy Harold | | anjing f | 1989/05/13 | | NULL

+--------+--------+---------+------+------------+- ------+

Untuk mengetahui berisi "w" pada nama, gunakan "] WW [" cocok huruf besar huruf kecil atau "w":

Mysql SELECT conf config generate.sh bin cadangan data eshow_sitemap.html tmp svn log DARI Maint sitemap.html pet WHERE nama regexp "] WW [";

+----------+-------+---------+------+------------+ ------------+

| Nama | pemilik | spesies | seks | kelahiran | kematian |

+----------+-------+---------+------+------------+ ------------+

| Claws | Gwen | cat m | | 1994/03/17 | | NULL

| Bowser | Diane | dog | m | 1989/08/31 | 1995/07/29 |

| Whistler | Gwen | bird | NULL | 1997/12/09 | NULL |

+----------+-------+---------+------+------------+ ------------+

Seolah-olah ekspresi reguler di mana pun di nilai pencocokan pola, dan tidak perlu query dua istilah sebelumnya dalam model untuk tempat wildcard untuk membuatnya cocok dengan nilai keseluruhan

Seperti jika Anda menggunakan sebagai modus SQL.

Untuk mencari tahu lima karakter mengandung nama, gunakan "^" dan "$" sesuai dengan nama awal dan akhir, dan 5 "" Contoh. Di antaranya:

Mysql SELECT conf config generate.sh bin cadangan data eshow_sitemap.html tmp svn log DARI Maint sitemap.html pet WHERE nama regexp "^.....$";

+-------+--------+---------+------+------------+-- -----+

| Nama | pemilik | spesies | seks | kelahiran | kematian |

+-------+--------+---------+------+------------+-- -----+

| Claws | Gwen | cat m | | 1994/03/17 | | NULL

| | Buffy Harold | | anjing f | 1989/05/13 | | NULL

+-------+--------+---------+------+------------+-- -----+

Anda juga dapat menggunakan "(n)" "ulangi kali n" operator penulisan ulang permintaan sebelumnya:

Mysql SELECT conf config generate.sh bin cadangan data eshow_sitemap.html tmp svn log DARI Maint sitemap.html pet WHERE nama regexp "^. (5) $";

+-------+--------+---------+------+------------+-- -----+

| Nama | pemilik | spesies | seks | kelahiran | kematian |

+-------+--------+---------+------+------------+-- -----+

| Claws | Gwen | cat m | | 1994/03/17 | | NULL

| | Buffy Harold | | anjing f | 1989/05/13 | | NULL

+-------+--------+---------+------+------------+-- -----+

Ringkasan

Ini menjelaskan pengetahuan tentang pencocokan pola string. Standar pencocokan pola SQL adalah bahasa SQL standar dapat diterima oleh sistem database relasional lainnya. Extended pencocokan pola regular expression

sistem Unix didasarkan pada pengembangan standar, dan umumnya hanya dapat digunakan di MySQL, tapi fungsi daripada pencocokan pola SQL lebih standar.