MySQL REPLACE()
hàm cho phép bạn thay thế tất cả các lần xuất hiện của một chuỗi con bằng một chuỗi khác. Nó cho phép bạn làm những việc như thay thế tất cả các lần xuất hiện của một từ này bằng một từ khác, v.v.
Bài viết này trình bày cách sử dụng của nó.
Cú pháp
Đây là cách thực hiện cú pháp:
REPLACE(str,from_str,to_str)
Ở đâu str
là chuỗi chứa chuỗi con / s. from_str
là chuỗi con mà bạn muốn thay thế bằng một chuỗi khác. Và to_str
là chuỗi mới sẽ thay thế chuỗi cũ.
Ví dụ
Đây là một ví dụ cơ bản:
SELECT REPLACE('Cats and dogs and cats and rabbits', 'and', 'or') AS Result;
Kết quả:
+---------------------------------+ | Result | +---------------------------------+ | Cats or dogs or cats or rabbits | +---------------------------------+
Trong trường hợp này, chúng tôi chỉ cần hoán đổi từ and
với từ or
. Vì có ba lần xuất hiện của từ đó nên cả ba đều được thay thế.
Case-Sensitve
Điều quan trọng cần nhớ là REPLACE()
hàm phân biệt chữ hoa chữ thường.
Ví dụ:
SELECT REPLACE('Cats and dogs and cats and rabbits', 'cat', 'flea') AS Result;
Kết quả:
+-------------------------------------+ | Result | +-------------------------------------+ | Cats and dogs and fleas and rabbits | +-------------------------------------+
Trong trường hợp này, chỉ một bản sao của cat
đã được thay thế, bởi vì chỉ có một trường hợp có đúng trường hợp. Phiên bản đầu tiên có chữ hoa C
vì vậy nó không khớp.
Xóa một chuỗi con
Bạn cũng có thể xóa hoàn toàn một chuỗi con, đơn giản bằng cách thay thế chuỗi con bằng chuỗi trống (''
):
SELECT REPLACE('http://www.database.guide', 'www.', '') AS Result;
Kết quả:
+-----------------------+ | Result | +-----------------------+ | http://database.guide | +-----------------------+
Một biện pháp bảo vệ
Một cách khác (có lẽ an toàn hơn) để làm điều này là bao gồm một số văn bản xung quanh, sau đó loại bỏ phần không cần thiết:
SELECT REPLACE('http://www.database.guide', 'http://www.', 'http://') AS Result;
Kết quả:
+-----------------------+ | Result | +-----------------------+ | http://database.guide | +-----------------------+
Điều này bảo vệ chống lại việc vô tình xóa một chuỗi con không nên xóa. Ví dụ:nếu chúng tôi có một URL như http://bestwww.com
, sẽ vô tình biến thành http://bestcom
không có biện pháp bảo vệ.
Biện pháp bảo vệ tương tự có thể được áp dụng trong trường hợp bạn đang thay thế văn bản (không chỉ xóa nó). Ví dụ:điều này:
SELECT REPLACE('Land of cats and dogs and sand', ' and ', ' or ') AS Result;
Kết quả:
+------------------------------+ | Result | +------------------------------+ | Land of cats or dogs or sand | +------------------------------+
Trong trường hợp này, tôi đã thêm một khoảng trắng trước và sau chuỗi con và văn bản thay thế của nó.
Nếu tôi không làm điều này, tôi sẽ kết thúc với điều này:
SELECT REPLACE('Land of cats and dogs and sand', ' and ', ' or ') AS Result;
Kết quả:
+----------------------------+ | Result | +----------------------------+ | Lor of cats or dogs or sor | +----------------------------+