MySQLi - Regexps

Anda telah melihat pola MySQLi yang cocok dengan LIKE ...%. MySQLi mendukung jenis operasi pencocokan pola lain berdasarkan ekspresi reguler danREGEXPoperator. Jika Anda mengetahui PHP atau PERL, maka sangat mudah bagi Anda untuk memahaminya karena pencocokan ini sangat mirip dengan ekspresi reguler skrip tersebut.

Berikut adalah tabel pola, yang dapat digunakan bersama REGEXP operator.

Pola Apa polanya cocok
^ Awal string
$ Akhir string
. Karakter tunggal apa pun
[...] Karakter apa pun yang terdaftar di antara tanda kurung siku
[^ ...] Karakter apa pun yang tidak terdaftar di antara tanda kurung siku
p1 | p2 | p3 Alternasi; cocok dengan salah satu pola p1, p2, atau p3
* Nol atau lebih contoh dari elemen sebelumnya
+ Satu atau lebih contoh elemen sebelumnya
{n} n contoh elemen sebelumnya
{M N} m melalui n contoh elemen sebelumnya

Contoh

Sekarang berdasarkan tabel di atas, Anda dapat menggunakan berbagai jenis kueri SQL untuk memenuhi kebutuhan Anda. Di sini, saya mencantumkan beberapa untuk pengertian Anda. Pertimbangkan kami memiliki tabel bernama tutorials_inf dan itu memiliki bidang bernama nama -

Query untuk menemukan semua nama yang dimulai dengan 'sa'

mysql>  SELECT * FROM tutorials_inf WHERE name REGEXP '^sa';

Output sampel harus seperti ini -

+----+------+
| id | name |
+----+------+
|  1 | sai  |
+----+------+
1 row in set (0.00 sec)

Query untuk menemukan semua nama yang diakhiri dengan 'ai'

mysql> SELECT * FROM tutorials_inf WHERE name REGEXP 'ai$';

Output sampel harus seperti ini -

+----+------+
| id | name |
+----+------+
|  1 | sai  |
+----+------+
1 row in set (0.00 sec)

Query untuk menemukan semua nama, yang mengandung 'a'

mysql> SELECT * FROM tutorials_inf WHERE name REGEXP 'a';

Output sampel harus seperti ini -

+----+-------+
| id | name  |
+----+-------+
|  1 | sai   |
|  3 | ram   |
|  4 | johar |
+----+-------+
3 rows in set (0.00 sec)

Kueri untuk menemukan semua nama yang dimulai dengan huruf vokal

mysql>  SELECT * FROM tutorials_inf WHERE name REGEXP '^[aeiou]';