Trong MariaDB, REPLACE()
là một hàm chuỗi tích hợp cho phép bạn thay thế một phần của chuỗi bằng một chuỗi khác.
Hàm chấp nhận ba đối số:chuỗi, chuỗi con để thay thế và chuỗi để thay thế chuỗi con bằng.
Cú pháp
Cú pháp như sau:
REPLACE(str,from_str,to_str)
Ở đâu str
là chuỗi và from_str
là chuỗi con để thay thế và to_str
là chuỗi để thay thế chuỗi con đó bằng.
Ví dụ
Đây là một ví dụ cơ bản:
SELECT REPLACE('Black dog', 'dog', 'cat');
Kết quả:
+------------------------------------+ | REPLACE('Black dog', 'dog', 'cat') | +------------------------------------+ | Black cat | +------------------------------------+
Trong trường hợp này, chúng tôi đã thay thế chuỗi con dog
với cat
.
Nhiều Kết hợp
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 | +----------------------------------------------------+
Không phù hợp
Nếu chuỗi con không xuất hiện trong chuỗi, REPLACE()
trả về chuỗi không thay đổi:
SELECT REPLACE('Black dog', 'horse', 'cat');
Kết quả:
+--------------------------------------+ | REPLACE('Black dog', 'horse', 'cat') | +--------------------------------------+ | Black dog | +--------------------------------------+
Phân biệt chữ hoa chữ thường
REPLACE()
hàm thực hiện so khớp phân biệt chữ hoa chữ thường:
SELECT REPLACE('Black dog', 'Dog', 'Cat');
Kết quả:
+------------------------------------+ | REPLACE('Black dog', 'Dog', 'Cat') | +------------------------------------+ | Black dog | +------------------------------------+
Trong ví dụ này, trường hợp không khớp và vì vậy không có gì được thay thế.
Chuỗi trống
Dưới đây là những gì sẽ xảy ra khi một chuỗi trống được chuyển cho mỗi đối số nhất định:
SELECT
REPLACE(' ', 'dog', 'cat') AS "1",
REPLACE('Black dog', ' ', 'cat') AS "2",
REPLACE('Black dog', 'dog', ' ') AS "3";
Kết quả:
+------+-----------+--------+ | 1 | 2 | 3 | +------+-----------+--------+ | | Black dog | Black | +------+-----------+--------+
Vì vậy, trong trường hợp này:
- Truyền một chuỗi trống cho chuỗi ban đầu trả về một chuỗi trống.
- Truyền một chuỗi trống cho đối số thứ hai sẽ trả về chuỗi ban đầu.
- Truyền một chuỗi trống cho đối số thứ ba sẽ xóa chuỗi được thay thế khỏi chuỗi.
Ký tự không gian
Một chuỗi trống không giống với ký tự khoảng trắng.
Dưới đây là những gì sẽ xảy ra khi chúng tôi thay đổi chuỗi trống thành dấu cách:
SELECT
REPLACE(' ', 'dog', 'cat') AS "1",
REPLACE('Black dog', ' ', 'cat') AS "2",
REPLACE('Black dog', 'dog', ' ') AS "3";
Kết quả:
+------+-------------+---------+ | 1 | 2 | 3 | +------+-------------+---------+ | | Blackcatdog | Black | +------+-------------+---------+
Do đó, nếu chuỗi không có gì khác ngoài khoảng trắng, thì chúng ta có thể thay thế chuỗi đó bằng một chuỗi khác:
SELECT REPLACE(' ', ' ', 'cat');
Kết quả:
+--------------------------+ | REPLACE(' ', ' ', 'cat') | +--------------------------+ | cat | +--------------------------+
Đối số rỗng
Cung cấp null
kết quả là null
:
SELECT
REPLACE(null, 'dog', 'cat') AS "1",
REPLACE('Black dog', null, 'cat') AS "2",
REPLACE('Black dog', 'dog', null) AS "3";
Kết quả:
+------+------+------+ | 1 | 2 | 3 | +------+------+------+ | NULL | NULL | NULL | +------+------+------+
Thiếu đối số
Đang gọi REPLACE()
với số lượng đối số sai hoặc không chuyển bất kỳ đối số nào dẫn đến lỗi:
SELECT REPLACE();
Kết quả:
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ')' at line 1