MySQL một phần chuỗi phù hợp

Sử dụng toán tử

mysql> SELECT name FROM metal WHERE name REGEXP 'er$';
+--------+
| name   |
+--------+
| copper |
| silver |
+--------+
2 và mẫu biểu thức chính quy, được mô tả trong phần này. Hoặc sử dụng mẫu SQL, được mô tả trong Công thức 4. 7

Các mẫu SQL (xem Công thức 4. 7) có khả năng được triển khai bởi các hệ thống cơ sở dữ liệu khác, vì vậy chúng có thể di động hợp lý ngoài MySQL. Mặt khác, chúng có phần hạn chế. Ví dụ: bạn có thể dễ dàng viết một mẫu SQL

mysql> SELECT name FROM metal WHERE name REGEXP 'er$';
+--------+
| name   |
+--------+
| copper |
| silver |
+--------+
3 để tìm các chuỗi chứa
mysql> SELECT name FROM metal WHERE name REGEXP 'er$';
+--------+
| name   |
+--------+
| copper |
| silver |
+--------+
4, nhưng bạn không thể viết một mẫu SQL duy nhất để xác định các chuỗi chứa bất kỳ ký tự nào trong số các ký tự
mysql> SELECT name FROM metal WHERE name REGEXP 'er$';
+--------+
| name   |
+--------+
| copper |
| silver |
+--------+
5,
mysql> SELECT name FROM metal WHERE name REGEXP 'er$';
+--------+
| name   |
+--------+
| copper |
| silver |
+--------+
6 hoặc
mysql> SELECT name FROM metal WHERE name REGEXP 'er$';
+--------+
| name   |
+--------+
| copper |
| silver |
+--------+
7. Bạn cũng không thể khớp nội dung chuỗi dựa trên các loại ký tự như chữ cái hoặc chữ số. Đối với các hoạt động như vậy, MySQL hỗ trợ một loại hoạt động khớp mẫu khác dựa trên biểu thức chính quy và toán tử
mysql> SELECT name FROM metal WHERE name REGEXP 'er$';
+--------+
| name   |
+--------+
| copper |
| silver |
+--------+
2 (hoặc
mysql> SELECT name FROM metal WHERE name REGEXP 'er$';
+--------+
| name   |
+--------+
| copper |
| silver |
+--------+
9
mysql> SELECT name FROM metal WHERE name REGEXP 'er$';
+--------+
| name   |
+--------+
| copper |
| silver |
+--------+
2 để đảo ngược ý nghĩa của khớp). [] Kết hợp
mysql> SELECT name FROM metal WHERE name REGEXP 'er$';
+--------+
| name   |
+--------+
| copper |
| silver |
+--------+
2 sử dụng một tập hợp các phần tử mẫu khác với
mysql> SELECT name FROM metal WHERE name REGEXP 'er';
+---------+
| name    |
+---------+
| copper  |
| mercury |
| silver  |
+---------+
2 và
mysql> SELECT name FROM metal WHERE name REGEXP 'er';
+---------+
| name    |
+---------+
| copper  |
| mercury |
| silver  |
+---------+
3 (cả hai phần tử này đều không có gì đặc biệt trong biểu thức chính quy)

Mẫu

Những gì mô hình phù hợp

mysql> SELECT name FROM metal WHERE name REGEXP 'er';
+---------+
| name    |
+---------+
| copper  |
| mercury |
| silver  |
+---------+
4

bắt đầu chuỗi

mysql> SELECT name FROM metal WHERE name REGEXP 'er';
+---------+
| name    |
+---------+
| copper  |
| mercury |
| silver  |
+---------+
5

Kết thúc chuỗi

mysql> SELECT name FROM metal WHERE name REGEXP 'er';
+---------+
| name    |
+---------+
| copper  |
| mercury |
| silver  |
+---------+
6

Bất kỳ ký tự đơn nào

mysql> SELECT name FROM metal WHERE name REGEXP 'er';
+---------+
| name    |
+---------+
| copper  |
| mercury |
| silver  |
+---------+
7

Bất kỳ ký tự nào được liệt kê giữa các dấu ngoặc vuông

mysql> SELECT name FROM metal WHERE name REGEXP 'er';
+---------+
| name    |
+---------+
| copper  |
| mercury |
| silver  |
+---------+
8

Bất kỳ ký tự nào không được liệt kê giữa các dấu ngoặc vuông

mysql> SELECT name FROM metal WHERE name REGEXP 'er';
+---------+
| name    |
+---------+
| copper  |
| mercury |
| silver  |
+---------+
9_______18_______0
mysql> SELECT name FROM metal WHERE name REGEXP '^..pp';
+--------+
| name   |
+--------+
| copper |
+--------+
1
mysql> SELECT name FROM metal WHERE name REGEXP '^..pp';
+--------+
| name   |
+--------+
| copper |
+--------+
0
mysql> SELECT name FROM metal WHERE name REGEXP '^..pp';
+--------+
| name   |
+--------+
| copper |
+--------+
3

Luân phiên;

mysql> SELECT name FROM metal WHERE name REGEXP '^..pp';
+--------+
| name   |
+--------+
| copper |
+--------+
7

Không hoặc nhiều phiên bản của phần tử trước

mysql> SELECT name FROM metal WHERE name REGEXP '^..pp';
+--------+
| name   |
+--------+
| copper |
+--------+
8

Một hoặc nhiều trường hợp của phần tử trước

mysql> SELECT name FROM metal WHERE name REGEXP '^..pp';
+--------+
| name   |
+--------+
| copper |
+--------+
9
mysql> SELECT name, name REGEXP '[[:xdigit:]]' FROM metal;
+----------+----------------------------+
| name     | name REGEXP '[[:xdigit:]]' |
+----------+----------------------------+
| copper   |                          1 |
| gold     |                          1 |
| iron     |                          0 |
| lead     |                          1 |
| mercury  |                          1 |
| platinum |                          1 |
| silver   |                          1 |
| tin      |                          0 |
+----------+----------------------------+
0
mysql> SELECT name, name REGEXP '[[:xdigit:]]' FROM metal;
+----------+----------------------------+
| name     | name REGEXP '[[:xdigit:]]' |
+----------+----------------------------+
| copper   |                          1 |
| gold     |                          1 |
| iron     |                          0 |
| lead     |                          1 |
| mercury  |                          1 |
| platinum |                          1 |
| silver   |                          1 |
| tin      |                          0 |
+----------+----------------------------+
1

mysql> SELECT name, name REGEXP '[[:xdigit:]]' FROM metal;
+----------+----------------------------+
| name     | name REGEXP '[[:xdigit:]]' |
+----------+----------------------------+
| copper   |                          1 |
| gold     |                          1 |
| iron     |                          0 |
| lead     |                          1 |
| mercury  |                          1 |
| platinum |                          1 |
| silver   |                          1 |
| tin      |                          0 |
+----------+----------------------------+
0 trường hợp của phần tử trước

mysql> SELECT name FROM metal WHERE name REGEXP '^..pp';
+--------+
| name   |
+--------+
| copper |
+--------+
9
mysql> SELECT name, name REGEXP '[[:xdigit:]]' FROM metal;
+----------+----------------------------+
| name     | name REGEXP '[[:xdigit:]]' |
+----------+----------------------------+
| copper   |                          1 |
| gold     |                          1 |
| iron     |                          0 |
| lead     |                          1 |
| mercury  |                          1 |
| platinum |                          1 |
| silver   |                          1 |
| tin      |                          0 |
+----------+----------------------------+
4
mysql> SELECT name, name REGEXP '[[:xdigit:]]' FROM metal;
+----------+----------------------------+
| name     | name REGEXP '[[:xdigit:]]' |
+----------+----------------------------+
| copper   |                          1 |
| gold     |                          1 |
| iron     |                          0 |
| lead     |                          1 |
| mercury  |                          1 |
| platinum |                          1 |
| silver   |                          1 |
| tin      |                          0 |
+----------+----------------------------+
5
mysql> SELECT name, name REGEXP '[[:xdigit:]]' FROM metal;
+----------+----------------------------+
| name     | name REGEXP '[[:xdigit:]]' |
+----------+----------------------------+
| copper   |                          1 |
| gold     |                          1 |
| iron     |                          0 |
| lead     |                          1 |
| mercury  |                          1 |
| platinum |                          1 |
| silver   |                          1 |
| tin      |                          0 |
+----------+----------------------------+
0
mysql> SELECT name, name REGEXP '[[:xdigit:]]' FROM metal;
+----------+----------------------------+
| name     | name REGEXP '[[:xdigit:]]' |
+----------+----------------------------+
| copper   |                          1 |
| gold     |                          1 |
| iron     |                          0 |
| lead     |                          1 |
| mercury  |                          1 |
| platinum |                          1 |
| silver   |                          1 |
| tin      |                          0 |
+----------+----------------------------+
1

Các trường hợp của phần tử trước

mysql> SELECT name, name REGEXP '[[:xdigit:]]' FROM metal;
+----------+----------------------------+
| name     | name REGEXP '[[:xdigit:]]' |
+----------+----------------------------+
| copper   |                          1 |
| gold     |                          1 |
| iron     |                          0 |
| lead     |                          1 |
| mercury  |                          1 |
| platinum |                          1 |
| silver   |                          1 |
| tin      |                          0 |
+----------+----------------------------+
4 đến
mysql> SELECT name, name REGEXP '[[:xdigit:]]' FROM metal;
+----------+----------------------------+
| name     | name REGEXP '[[:xdigit:]]' |
+----------+----------------------------+
| copper   |                          1 |
| gold     |                          1 |
| iron     |                          0 |
| lead     |                          1 |
| mercury  |                          1 |
| platinum |                          1 |
| silver   |                          1 |
| tin      |                          0 |
+----------+----------------------------+
0

Bạn có thể đã quen thuộc với các ký tự mẫu biểu thức chính quy này, vì nhiều trong số chúng giống với các ký tự được sử dụng bởi vi, grep, sed và các tiện ích Unix khác hỗ trợ biểu thức chính quy. Hầu hết chúng cũng được sử dụng trong các biểu thức chính quy được hiểu bởi Perl, PHP và Python. (Ví dụ, Chương 10 thảo luận về khớp mẫu trong tập lệnh Perl. ) Đối với Java, các thư viện lớp Jakarta ORO hoặc Regexp cung cấp các khả năng đối sánh cũng sử dụng các ký tự này

Phần trước về các mẫu SQL đã chỉ ra cách khớp các chuỗi con ở đầu hoặc cuối chuỗi hoặc ở một vị trí tùy ý hoặc cụ thể trong một chuỗi. Bạn có thể làm những điều tương tự với các biểu thức thông thường

  • Các chuỗi bắt đầu bằng một chuỗi con cụ thể

    mysql> SELECT name FROM metal WHERE name REGEXP '^co';
    +--------+
    | name   |
    +--------+
    | copper |
    +--------+
  • Các chuỗi kết thúc bằng một chuỗi con cụ thể

    mysql> SELECT name FROM metal WHERE name REGEXP 'er$';
    +--------+
    | name   |
    +--------+
    | copper |
    | silver |
    +--------+
  • Các chuỗi chứa một chuỗi con cụ thể tại bất kỳ vị trí nào

    mysql> SELECT name FROM metal WHERE name REGEXP 'er';
    +---------+
    | name    |
    +---------+
    | copper  |
    | mercury |
    | silver  |
    +---------+
  • Các chuỗi chứa một chuỗi con cụ thể tại một vị trí cụ thể

    mysql> SELECT name FROM metal WHERE name REGEXP '^..pp';
    +--------+
    | name   |
    +--------+
    | copper |
    +--------+

Ngoài ra, các biểu thức chính quy có các khả năng khác và có thể thực hiện các loại đối sánh mà các mẫu SQL không thể thực hiện được. Ví dụ: biểu thức chính quy có thể chứa các lớp ký tự, khớp với bất kỳ ký tự nào trong lớp

  • Để viết một lớp ký tự, hãy liệt kê các ký tự bạn muốn lớp khớp với bên trong dấu ngoặc vuông. Do đó, mẫu

    alternative1|alternative2|...
    0 khớp với
    mysql> SELECT name FROM metal WHERE name REGEXP 'er$';
    +--------+
    | name   |
    +--------+
    | copper |
    | silver |
    +--------+
    5,
    mysql> SELECT name FROM metal WHERE name REGEXP 'er$';
    +--------+
    | name   |
    +--------+
    | copper |
    | silver |
    +--------+
    6 hoặc
    mysql> SELECT name FROM metal WHERE name REGEXP 'er$';
    +--------+
    | name   |
    +--------+
    | copper |
    | silver |
    +--------+
    7

  • Các lớp có thể biểu thị phạm vi ký tự bằng cách sử dụng dấu gạch ngang giữa đầu và cuối phạm vi.

    alternative1|alternative2|...
    4 khớp với bất kỳ chữ cái nào,
    alternative1|alternative2|...
    5 khớp với chữ số và
    alternative1|alternative2|...
    6 khớp với chữ cái hoặc chữ số

  • Để phủ định một lớp ký tự (“khớp bất kỳ ký tự nào ngoại trừ những ký tự này”), hãy bắt đầu danh sách bằng ký tự

    mysql> SELECT name FROM metal WHERE name REGEXP 'er';
    +---------+
    | name    |
    +---------+
    | copper  |
    | mercury |
    | silver  |
    +---------+
    4. Ví dụ:
    alternative1|alternative2|...
    8 khớp với mọi thứ trừ chữ số

Các khả năng biểu thức chính quy của MySQL cũng hỗ trợ các lớp ký tự POSIX. Các bộ ký tự cụ thể này khớp với nhau, như được mô tả trong bảng sau

lớp POSIX

Những gì lớp học phù hợp

alternative1|alternative2|...
9

Ký tự chữ cái và số

mysql> SELECT name FROM metal WHERE name REGEXP '^[aeiou]|er$';
+--------+
| name   |
+--------+
| copper |
| iron   |
| silver |
+--------+
0

Ký tự chữ cái

mysql> SELECT name FROM metal WHERE name REGEXP '^[aeiou]|er$';
+--------+
| name   |
+--------+
| copper |
| iron   |
| silver |
+--------+
1

Khoảng trắng (dấu cách hoặc ký tự tab)

mysql> SELECT name FROM metal WHERE name REGEXP '^[aeiou]|er$';
+--------+
| name   |
+--------+
| copper |
| iron   |
| silver |
+--------+
2

Ký tự điều khiển

mysql> SELECT name FROM metal WHERE name REGEXP '^[aeiou]|er$';
+--------+
| name   |
+--------+
| copper |
| iron   |
| silver |
+--------+
3

chữ số

mysql> SELECT name FROM metal WHERE name REGEXP '^[aeiou]|er$';
+--------+
| name   |
+--------+
| copper |
| iron   |
| silver |
+--------+
4

Ký tự đồ họa (không trống)

mysql> SELECT name FROM metal WHERE name REGEXP '^[aeiou]|er$';
+--------+
| name   |
+--------+
| copper |
| iron   |
| silver |
+--------+
5

Ký tự chữ thường

mysql> SELECT name FROM metal WHERE name REGEXP '^[aeiou]|er$';
+--------+
| name   |
+--------+
| copper |
| iron   |
| silver |
+--------+
6

Ký tự đồ họa hoặc khoảng trắng

mysql> SELECT name FROM metal WHERE name REGEXP '^[aeiou]|er$';
+--------+
| name   |
+--------+
| copper |
| iron   |
| silver |
+--------+
7

ký tự chấm câu

mysql> SELECT name FROM metal WHERE name REGEXP '^[aeiou]|er$';
+--------+
| name   |
+--------+
| copper |
| iron   |
| silver |
+--------+
8

Dấu cách, tab, xuống dòng, xuống dòng

mysql> SELECT name FROM metal WHERE name REGEXP '^[aeiou]|er$';
+--------+
| name   |
+--------+
| copper |
| iron   |
| silver |
+--------+
9

Ký tự chữ hoa

mysql> SELECT '0m' REGEXP '^[[:digit:]]+|[[:alpha:]]+$';
+-------------------------------------------+
| '0m' REGEXP '^[[:digit:]]+|[[:alpha:]]+$' |
+-------------------------------------------+
|                                         1 |
+-------------------------------------------+
0

Chữ số thập lục phân (_______62_______1,

mysql> SELECT '0m' REGEXP '^[[:digit:]]+|[[:alpha:]]+$';
+-------------------------------------------+
| '0m' REGEXP '^[[:digit:]]+|[[:alpha:]]+$' |
+-------------------------------------------+
|                                         1 |
+-------------------------------------------+
2,
mysql> SELECT '0m' REGEXP '^[[:digit:]]+|[[:alpha:]]+$';
+-------------------------------------------+
| '0m' REGEXP '^[[:digit:]]+|[[:alpha:]]+$' |
+-------------------------------------------+
|                                         1 |
+-------------------------------------------+
3)

Các lớp POSIX được thiết kế để sử dụng trong các lớp ký tự, vì vậy bạn sử dụng chúng trong dấu ngoặc vuông. Biểu thức sau khớp với các giá trị chứa bất kỳ ký tự chữ số thập lục phân nào

mysql> SELECT name, name REGEXP '[[:xdigit:]]' FROM metal;
+----------+----------------------------+
| name     | name REGEXP '[[:xdigit:]]' |
+----------+----------------------------+
| copper   |                          1 |
| gold     |                          1 |
| iron     |                          0 |
| lead     |                          1 |
| mercury  |                          1 |
| platinum |                          1 |
| silver   |                          1 |
| tin      |                          0 |
+----------+----------------------------+

Biểu thức chính quy có thể chứa các thay thế. Cú pháp trông như thế này

alternative1|alternative2|...

Một thay thế tương tự như một lớp ký tự theo nghĩa là nó khớp nếu bất kỳ lựa chọn thay thế nào khớp. Nhưng không giống như một lớp ký tự, các lựa chọn thay thế không giới hạn ở các ký tự đơn lẻ—chúng có thể là các chuỗi hoặc thậm chí là các mẫu. Ví dụ: sự thay thế sau khớp với các chuỗi bắt đầu bằng một nguyên âm hoặc kết thúc bằng

mysql> SELECT '0m' REGEXP '^[[:digit:]]+|[[:alpha:]]+$';
+-------------------------------------------+
| '0m' REGEXP '^[[:digit:]]+|[[:alpha:]]+$' |
+-------------------------------------------+
|                                         1 |
+-------------------------------------------+
4

mysql> SELECT name FROM metal WHERE name REGEXP '^[aeiou]|er$';
+--------+
| name   |
+--------+
| copper |
| iron   |
| silver |
+--------+

Dấu ngoặc đơn có thể được sử dụng để nhóm luân phiên. Ví dụ: nếu bạn muốn so khớp các chuỗi bao gồm toàn chữ số hoặc toàn chữ cái, bạn có thể thử mẫu này, sử dụng phép thay thế

mysql> SELECT '0m' REGEXP '^[[:digit:]]+|[[:alpha:]]+$';
+-------------------------------------------+
| '0m' REGEXP '^[[:digit:]]+|[[:alpha:]]+$' |
+-------------------------------------------+
|                                         1 |
+-------------------------------------------+

Nhưng khi kết quả truy vấn hiển thị, mẫu không hoạt động. Đó là bởi vì nhóm

mysql> SELECT name FROM metal WHERE name REGEXP 'er';
+---------+
| name    |
+---------+
| copper  |
| mercury |
| silver  |
+---------+
4 với phương án thứ nhất và nhóm
mysql> SELECT name FROM metal WHERE name REGEXP 'er';
+---------+
| name    |
+---------+
| copper  |
| mercury |
| silver  |
+---------+
5 với phương án thứ hai. Vì vậy, mẫu thực sự khớp với các chuỗi bắt đầu bằng một hoặc nhiều chữ số hoặc các chuỗi kết thúc bằng một hoặc nhiều chữ cái. Tuy nhiên, nếu bạn nhóm các lựa chọn thay thế trong ngoặc đơn, thì
mysql> SELECT name FROM metal WHERE name REGEXP 'er';
+---------+
| name    |
+---------+
| copper  |
| mercury |
| silver  |
+---------+
4 và
mysql> SELECT name FROM metal WHERE name REGEXP 'er';
+---------+
| name    |
+---------+
| copper  |
| mercury |
| silver  |
+---------+
5 sẽ áp dụng cho cả hai và mẫu sẽ hoạt động như bạn mong đợi

mysql> SELECT '0m' REGEXP '^([[:digit:]]+|[[:alpha:]]+)$';
+---------------------------------------------+
| '0m' REGEXP '^([[:digit:]]+|[[:alpha:]]+)$' |
+---------------------------------------------+
|                                           0 |
+---------------------------------------------+

Không giống như đối sánh mẫu SQL, chỉ thành công nếu mẫu khớp với toàn bộ giá trị so sánh, biểu thức chính quy thành công nếu mẫu khớp với bất kỳ vị trí nào trong giá trị. Hai đối sánh mẫu sau đây là tương đương theo nghĩa là mỗi đối sánh chỉ thành công đối với các chuỗi chứa ký tự

mysql> SELECT name FROM metal WHERE name REGEXP 'er$';
+--------+
| name   |
+--------+
| copper |
| silver |
+--------+
6, nhưng đối sánh mẫu đầu tiên hiệu quả hơn vì mẫu đơn giản hơn

'abc' REGEXP 'b'
'abc' REGEXP '^.*b.*$'

Biểu thức chính quy không khớp với giá trị

mysql> SELECT '0m' REGEXP '^([[:digit:]]+|[[:alpha:]]+)$';
+---------------------------------------------+
| '0m' REGEXP '^([[:digit:]]+|[[:alpha:]]+)$' |
+---------------------------------------------+
|                                           0 |
+---------------------------------------------+
0. Điều này đúng cho cả
mysql> SELECT name FROM metal WHERE name REGEXP 'er$';
+--------+
| name   |
+--------+
| copper |
| silver |
+--------+
2 và cho
mysql> SELECT name FROM metal WHERE name REGEXP 'er$';
+--------+
| name   |
+--------+
| copper |
| silver |
+--------+
9
mysql> SELECT name FROM metal WHERE name REGEXP 'er$';
+--------+
| name   |
+--------+
| copper |
| silver |
+--------+
2

mysql> SELECT name FROM metal WHERE name REGEXP 'er$';
+--------+
| name   |
+--------+
| copper |
| silver |
+--------+
0

Thực tế là một biểu thức chính quy khớp với một chuỗi nếu mẫu được tìm thấy ở bất kỳ đâu trong chuỗi có nghĩa là bạn phải cẩn thận để không vô tình chỉ định một mẫu khớp với chuỗi trống. Nếu bạn làm như vậy, nó sẽ khớp với mọi giá trị không phải ______75_______0. Ví dụ: mẫu

mysql> SELECT '0m' REGEXP '^([[:digit:]]+|[[:alpha:]]+)$';
+---------------------------------------------+
| '0m' REGEXP '^([[:digit:]]+|[[:alpha:]]+)$' |
+---------------------------------------------+
|                                           0 |
+---------------------------------------------+
5 khớp với bất kỳ số lượng
mysql> SELECT name FROM metal WHERE name REGEXP 'er$';
+--------+
| name   |
+--------+
| copper |
| silver |
+--------+
5 ký tự nào, thậm chí không có ký tự nào. Nếu mục tiêu của bạn là chỉ khớp các chuỗi chứa các chuỗi không trống gồm _______ 5 ký tự, hãy sử dụng _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ để thay thế.
mysql> SELECT name FROM metal WHERE name REGEXP '^..pp';
+--------+
| name   |
+--------+
| copper |
+--------+
8 yêu cầu một hoặc nhiều phiên bản của phần tử mẫu trước đó để khớp

Giống như đối sánh mẫu SQL được thực hiện bằng cách sử dụng

'abc' REGEXP 'b'
'abc' REGEXP '^.*b.*$'
0, đối sánh biểu thức chính quy được thực hiện với
mysql> SELECT name FROM metal WHERE name REGEXP 'er$';
+--------+
| name   |
+--------+
| copper |
| silver |
+--------+
2 đôi khi tương đương với so sánh chuỗi con. Các ký tự phụ
mysql> SELECT name FROM metal WHERE name REGEXP 'er';
+---------+
| name    |
+---------+
| copper  |
| mercury |
| silver  |
+---------+
4 và
mysql> SELECT name FROM metal WHERE name REGEXP 'er';
+---------+
| name    |
+---------+
| copper  |
| mercury |
| silver  |
+---------+
5 phục vụ cùng một mục đích như
'abc' REGEXP 'b'
'abc' REGEXP '^.*b.*$'
4 hoặc
'abc' REGEXP 'b'
'abc' REGEXP '^.*b.*$'
5, ít nhất là nếu bạn đang tìm kiếm các chuỗi ký tự

khớp mẫu

so sánh chuỗi con

'abc' REGEXP 'b'
'abc' REGEXP '^.*b.*$'
6

'abc' REGEXP 'b'
'abc' REGEXP '^.*b.*$'
7

'abc' REGEXP 'b'
'abc' REGEXP '^.*b.*$'
8

'abc' REGEXP 'b'
'abc' REGEXP '^.*b.*$'
9

Đối với các chuỗi không theo nghĩa đen, thông thường không thể xây dựng phép so sánh chuỗi con tương đương. Ví dụ: để khớp các chuỗi bắt đầu bằng bất kỳ chuỗi chữ số không trống nào, bạn có thể sử dụng khớp mẫu này

Làm cách nào để khớp chuỗi trong MySQL?

Hàm STRCMP() trong MySQL dùng để so sánh 2 chuỗi. .
Nếu string1 = string2, hàm này trả về 0
Nếu string1 < string2, hàm này trả về -1
Nếu string1 > string2, hàm này trả về 1
Nếu bất kỳ một hoặc cả hai chuỗi là NULL, hàm này trả về NULL

Làm cách nào để sử dụng Regexp_like trong MySQL?

Hàm REGEXP_LIKE() trong MySQL được sử dụng để so khớp mẫu. Nó so sánh xem các chuỗi đã cho có khớp với biểu thức chính quy hay không. .
mysql> CHỌN
REGEXP_LIKE ('Ấn Độ Indonesia', '^in', 'i') AS 'Không phân biệt chữ hoa chữ thường',
REGEXP_LIKE ('Ấn Độ Indonesia', '^in', 'c') AS 'Phân biệt chữ hoa chữ thường';

Làm cách nào để sử dụng Ilike trong MySQL?

Sử dụng mệnh đề LIKE bên trong PHP Script . Hàm này nhận hai tham số và trả về TRUE nếu thành công hoặc FALSE nếu thất bại. PHP uses mysqli query() or mysql_query() function to select records in a MySQL table using Like clause. This function takes two parameters and returns TRUE on success or FALSE on failure.

Làm thế nào để viết hoặc điều kiện trong MySQL?

Có thể sử dụng điều kiện MySQL OR trong câu lệnh INSERT. Ví dụ. XÁC NHẬN VÀO nhà cung cấp (supplier_id, nhà cung cấp_name) CHỌN customer_id, customer_name TỪ khách hàng WHERE state = 'Florida' OR state = 'California';