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

2 cách thay thế chuỗi con trong MariaDB

Nếu bạn cần thay thế một chuỗi con bằng một chuỗi khác trong MariaDB, đây là hai cách tiếp cận mà bạn có thể sử dụng.

REPLACE() Chức năng

Trong MariaDB, REPLACE() hàm được thiết kế đặc biệt để thay thế một chuỗi con trong một chuỗi khác.

Bạn cung cấp ba đối số khi gọi hàm. Đây là chuỗi, chuỗi con và chuỗi thay thế.

Ví dụ:

SELECT REPLACE('My dog likes to dig holes', 'dog', 'cat');

Kết quả:

+----------------------------------------------------+
| REPLACE('My dog likes to dig holes', 'dog', 'cat') |
+----------------------------------------------------+
| My cat likes to dig holes                          |
+----------------------------------------------------+

Trong trường hợp này, chúng tôi đã thay thế chuỗi con dog với cat .

Nếu chuỗi được thay thế xảy ra nhiều lần trong chuỗi, tất cả các lần xuất hiện sẽ được thay thế:

SELECT REPLACE('Black dogs and white dogs', 'dog', 'cat');

Kết quả:

+----------------------------------------------------+
| REPLACE('Black dogs and white dogs', 'dog', 'cat') |
+----------------------------------------------------+
| Black cats and white cats                          |
+----------------------------------------------------+

REPLACE() hàm thực hiện so khớp phân biệt chữ hoa chữ thường.

Xem Cách thực hiện REPLACE() Hoạt động trong MariaDB để có thêm ví dụ.

REGEXP_REPLACE() Chức năng

REGEXP_REPLACE() chức năng tương tự như REPLACE() , ngoại trừ việc nó cho phép bạn thực hiện đối sánh mẫu bằng cách sử dụng biểu thức chính quy.

Điều này làm cho REGEXP_REPLACE() mạnh hơn REPLACE() , vì bạn có thể so khớp với các phần của chuỗi để thay thế các chuỗi con khó hơn hoặc không thể so khớp khi chỉ sử dụng REPLACE() .

Ví dụ:

SELECT REGEXP_REPLACE('My cat has cuts', 'c.t', 'dog');

Kết quả:

+-------------------------------------------------+
| REGEXP_REPLACE('My cat has cuts', 'c.t', 'dog') |
+-------------------------------------------------+
| My dog has dogs                                 |
+-------------------------------------------------+

Biểu thức chính quy có thể rất mạnh và ví dụ này sử dụng một ví dụ rất đơn giản. Để sử dụng REGEXP_REPLACE() một cách hiệu quả, bạn sẽ cần biết mẫu chính xác để sử dụng cho kết quả mong muốn.

Cũng có thể cung cấp chuỗi ký tự đầy đủ dưới dạng mẫu, giống như bạn sử dụng với REPLACE() chức năng.

Do đó, chúng tôi có thể viết lại ví dụ đầu tiên trên trang này để sử dụng REGEXP_REPLACE() thay vì REPLACE() .

Dưới đây là một ví dụ chạy chúng song song với nhau để minh họa ý tôi muốn nói:

SELECT 
    REPLACE('My dog likes to dig holes', 'dog', 'cat') AS "REPLACE()",
    REGEXP_REPLACE('My dog likes to dig holes', 'dog', 'cat') AS "REGEXP_REPLACE()";

Kết quả:

+---------------------------+---------------------------+
| REPLACE()                 | REGEXP_REPLACE()          |
+---------------------------+---------------------------+
| My cat likes to dig holes | My cat likes to dig holes |
+---------------------------+---------------------------+

Ngoài ra, REGEXP_REPLACE() hàm tuân theo các quy tắc phân biệt chữ hoa chữ thường của phép đối chiếu hiệu quả. Đối sánh được thực hiện phân biệt chữ hoa chữ thường đối với các đối chiếu phân biệt chữ hoa chữ thường và phân biệt chữ hoa chữ thường đối với các đối chiếu phân biệt chữ hoa chữ thường và đối với dữ liệu nhị phân. Tuy nhiên, độ nhạy chữ hoa chữ thường đối chiếu có thể được ghi đè bằng cách sử dụng (?i ) và (?-i ) Cờ PCRE.

Xem Cách thực hiện REGEXP_REPLACE() Hoạt động trong MariaDB để có các ví dụ về phân biệt chữ hoa chữ thường và hơn thế nữa.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. 2 cách trả lại mã ASCII cho một ký tự đã cho trong MariaDB

  2. 2 cách trả về hàng chỉ chứa ký tự chữ và số trong MariaDB

  3. Cân nhắc về mã hóa cho dữ liệu ở trạng thái nghỉ cho MariaDB

  4. Cách YEAR () hoạt động trong MariaDB

  5. Cách triển khai MariaDB Cluster 10.5 để có tính khả dụng cao