Latest web development tutorials

MySQL Regular Expressions

Pada bagian sebelumnya kita telah belajar melalui MySQL SEPERTI ...% untuk pencocokan fuzzy.

MySQL juga mendukung pencocokan ekspresi reguler lainnya, operator regexp MySQL menggunakan pencocokan ekspresi reguler.

Jika Anda tahu PHP atau Perl, maka operasi sangat sederhana, karena MySQL pencocokan ekspresi reguler mirip dengan script ini.

Dalam tabel di bawah mode normal dapat digunakan di operator regexp.

mode deskripsi
^ Pertandingan awal string. Jika Anda mengatur properti Multiline objek RegExp, ^ juga cocok '\ n' posisi atau '\ r' setelah.
$ Mencocokkan akhir masukan dari string. Jika Anda mengatur Multiline objek RegExp properti, juga cocok $ '\ n' atau posisi '\ r' sebelumnya.
. Cocok dengan satu karakter apapun kecuali "\ n" adalah. Untuk mencocokkan termasuk '\ n', termasuk karakter apapun, seperti penggunaan '[. \ N]' mode.
[...] Set karakter. Cocok karakter apapun termasuk. Misalnya, '[abc]' cocok "polos" di 'a'.
[^ ...] set karakter negatif. Cocok dengan karakter yang tidak termasuk. Misalnya, '[^ abc]' pertandingan "polos" di 'p'.
p1 | p2 | p3 Pertandingan p1, p2, p3 atau. Misalnya, 'z | makanan' bisa cocok dengan "z" atau "makanan". '(Z | f) banjir' akan cocok "zood" atau "makanan".
* Cocok sebelumnya subexpression nol atau lebih kali. Misalnya, zo * dapat mencocokkan "z" dan "kebun binatang". * Setara dengan {0,}.
+ Cocok sebelumnya subexpression satu kali atau lebih. Misalnya, 'zo +' akan cocok "zo" dan "kebun binatang", tapi tidak bisa cocok dengan "z". + Apakah setara dengan {1}.
{N} n adalah bilangan bulat non-negatif. Pencocokan n kali ditentukan. Misalnya, 'o {2}' tidak cocok dengan "Bob" di 'o', tapi bisa cocok dengan "makanan" dalam dua o.
{N, m} m dan n adalah bilangan bulat non-negatif, di mana n <= m. Pertandingan setidaknya n kali dan cocok dengan m kali.

contoh

Setelah Anda tahu kebutuhan lebih teratur, kita bisa lebih untuk kebutuhan mereka sendiri untuk menulis pernyataan SQL dengan ekspresi reguler. Di bawah ini kami akan daftar contoh kecil beberapa (nama tabel: person_tbl) untuk memperdalam pemahaman kita:

Cari semua nama field data ke awal 'st' dengan:

mysql> SELECT name FROM person_tbl WHERE name REGEXP '^st';

Cari semua nama field data ke 'ok' untuk mengakhiri:

mysql> SELECT name FROM person_tbl WHERE name REGEXP 'ok$';

Cari bidang nama berisi 'mar' string semua data:

mysql> SELECT name FROM person_tbl WHERE name REGEXP 'mar';

Cari field nama untuk mulai dengan vokal dan dengan 'ok' akhir string dari semua data:

mysql> SELECT name FROM person_tbl WHERE name REGEXP '^[aeiou]|ok$';