SQLite replace()
hàm cho phép chúng tôi thay thế một chuỗi (hoặc một phần của chuỗi) bằng một chuỗi khác.
Cách nó hoạt động là bạn cung cấp ba đối số; chuỗi chứa chuỗi con cần thay thế, chuỗi con trong chuỗi đó để thay thế và chuỗi để thay thế bằng.
Cú pháp
Cú pháp như sau:
replace(X,Y,Z)
Hàm trả về một chuỗi được hình thành bằng cách thay thế chuỗi Z cho mỗi lần xuất hiện của chuỗi Y trong chuỗi X.
Trình tự đối chiếu BINARY được sử dụng để so sánh. Nếu Y là một chuỗi rỗng thì trả về X không đổi. Nếu Z ban đầu không phải là một chuỗi, nó sẽ được truyền thành chuỗi UTF-8 trước khi xử lý.
Ví dụ
Dưới đây là một ví dụ đơn giản để chứng minh.
SELECT replace('Red Sky', 'Red', 'Blue');
Kết quả:
Blue Sky
Nếu đối số thứ hai không được tìm thấy trong đối số đầu tiên, thì không có gì được thay thế và chuỗi ban đầu được trả về.
SELECT replace('Red Sky', 'Green', 'Blue');
Kết quả:
Red Sky
Nếu đối số thứ hai là một chuỗi rỗng thì không có gì được thay thế và chuỗi ban đầu được trả về.
SELECT replace('Red Sky', '', 'Blue');
Kết quả:
Red Sky
Nhưng điều tương tự không thể nói về đối số thứ ba. Nếu đó là một chuỗi trống (và đối số thứ hai được tìm thấy trong đối số đầu tiên) thì nó sẽ xóa đối số thứ hai khỏi chuỗi.
SELECT replace('Red Sky', 'Red', '');
Kết quả:
Sky
Tuy nhiên, điều này sẽ không xảy ra nếu đối số thứ hai không được tìm thấy trong chuỗi.
SELECT replace('Red Sky', 'Blue', '');
Kết quả:
Red Sky
Thay thế bằng chuỗi không phải là
Nếu đối số thứ ba không phải là một chuỗi, nó sẽ được truyền thành chuỗi UTF-8 trước khi xử lý.
SELECT replace('Red Sky', 'Red', 8);
Kết quả:
8 Sky
Ví dụ về cơ sở dữ liệu
Dưới đây là một ví dụ lấy dữ liệu từ bảng cơ sở dữ liệu và thay thế một chuỗi / chuỗi con đã cho bằng một chuỗi khác.
SELECT
ProductName,
replace(ProductName, 'Widget', 'Car')
FROM Products;
Kết quả:
ProductName replace(ProductName, 'Widget', 'Car') -------------- ------------------------------------- Homer's Widget Homer's Car Peter's Widget Peter's Car Bob's Widget Bob's Car