Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Cách hoạt động của hàm REGEXP_LIKE () trong MySQL

Trong MySQL, REGEXP_LIKE() hàm được sử dụng để xác định xem một chuỗi có khớp với một biểu thức chính quy hay không.

Hàm trả về 1 nếu chuỗi khớp với biểu thức chính quy được cung cấp và 0 nếu không.

Cú pháp

Cú pháp như sau:

REGEXP_LIKE(expr, pat[, match_type])

Ở đâu expr là chuỗi đầu vào và pat là biểu thức chính quy mà bạn đang kiểm tra chuỗi.

match_type tùy chọn đối số cho phép bạn tinh chỉnh biểu thức chính quy. Ví dụ:bạn có thể sử dụng match_type để chỉ định đối sánh phân biệt chữ hoa chữ thường hay không.

Ví dụ 1 - Cách sử dụng cơ bản

Đây là một ví dụ cơ bản:

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

Kết quả:

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

Trong trường hợp này, biểu thức chính quy của chúng tôi chỉ định bất kỳ ký tự nào trong bất kỳ chuỗi nào, vì vậy tất nhiên chúng tôi sẽ nhận được một kết quả phù hợp. Hàm trả về 1 để chỉ ra một sự trùng khớp.

Ví dụ 2 - Không phù hợp

Dưới đây là một ví dụ trong đó chuỗi đầu vào không khớp với biểu thức chính quy:

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

Kết quả:

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

Trong trường hợp này, biểu thức chính quy của chúng tôi chỉ định rằng phải có một hoặc nhiều b ký tự trong bất kỳ trình tự nào. Chuỗi đầu vào của chúng tôi không chứa ký tự này và vì vậy 0 được trả lại.

Ví dụ 3 - So khớp đầu chuỗi

Dưới đây là một ví dụ trong đó biểu thức chính quy chỉ định rằng chuỗi phải bắt đầu bằng các ký tự nhất định:

Kết quả
SELECT REGEXP_LIKE('Cat', '^Ca') Result;

Kết quả:

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

Và đây là những gì sẽ xảy ra nếu không có kết quả phù hợp:

Kết quả
SELECT REGEXP_LIKE('Cat', '^Da') Result;

Kết quả:

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

Ví dụ 4 - Truy vấn Cơ sở dữ liệu

Chức năng này có thể được sử dụng trong WHERE mệnh đề truy vấn cơ sở dữ liệu để chỉ trả về những hàng có chứa mẫu:

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

Kết quả:

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

Đây là bảng đầy đủ:

SELECT AlbumId, AlbumName
FROM Albums;

Kết quả:

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

Ví dụ 5 - match_type Đối số

Bạn có thể cung cấp một đối số bổ sung để xác định loại đối sánh. Điều này cho phép bạn chỉ định những thứ như kết hợp có phân biệt chữ hoa chữ thường hay không, có bao gồm dấu chấm cuối dòng hay không, v.v.

Dưới đây là ví dụ về cách chỉ định đối sánh phân biệt chữ hoa chữ thường và không phân biệt chữ hoa chữ thường:

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

Kết quả:

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

match_type đối số có thể chứa các ký tự sau:

c
Đối sánh phân biệt chữ hoa chữ thường.
i
Đối sánh không phân biệt chữ hoa chữ thường.
m
Chế độ nhiều dòng. Nhận ra các đầu cuối dòng trong chuỗi. Hành vi mặc định là chỉ đối sánh với các dấu cuối dòng ở đầu và cuối của biểu thức chuỗi.
n
. ký tự khớp với các ký tự kết thúc dòng. Giá trị mặc định là cho . khớp để dừng ở cuối dòng.
u
Kết thúc dòng chỉ Unix. Chỉ ký tự dòng mới được nhận dạng là một dòng kết thúc bằng . , ^$ so khớp các toán tử.

Các ví dụ khác

Bạn có thể xem thêm các ví dụ về biểu thức chính quy cơ bản tại MySQL REGEXP Examples. REGEXP là từ đồng nghĩa với REGEXP_LIKE() , vì vậy bạn có thể sử dụng các ví dụ thay thế cho nhau.

Cũng xem Cú pháp biểu thức chính quy từ tài liệu 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. Các chỉ mục MySQL - các phương pháp hay nhất là gì?

  2. Trình kích hoạt được lưu trữ của trình kích hoạt mysql đã được sử dụng bởi câu lệnh đã gọi trình kích hoạt được lưu trữ

  3. Chọn truy vấn mysql giữa ngày?

  4. Các chỉ mục MySQL hoạt động như thế nào?

  5. tham gia có điều kiện trong mysql