Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Hàm thay thế chuỗi con trong MySQL: INSERT() thay cho substr_replace

Sử dụng hàm INSERT() trong MySQL để thay thế chuỗi con

MySQL không có hàm substr_replace() như PHP, nhưng cung cấp hàm INSERT(str, pos, len, newstr) có chức năng tương tự: thay thế len ký tự bắt đầu từ vị trí pos trong chuỗi str bằng chuỗi newstr.

Cú pháp

INSERT(str, pos, len, newstr)
  • str: Chuỗi gốc
  • pos: Vị trí bắt đầu thay thế (bắt đầu từ 1)
  • len: Số ký tự sẽ bị thay thế
  • newstr: Chuỗi thay thế

Trả về chuỗi gốc nếu pos vượt quá độ dài chuỗi. Trả về NULL nếu bất kỳ tham số nào là NULL.

1. Tạo bảng và chèn dữ liệu

mysql> CREATE TABLE DemoTable (
    Password VARCHAR(50)
);
mysql> INSERT INTO DemoTable VALUES ('76367_____8793443');
mysql> INSERT INTO DemoTable VALUES ('12345_____9899984322');
mysql> INSERT INTO DemoTable VALUES ('99999_____4747747432');

2. Xem dữ liệu

mysql> SELECT * FROM DemoTable;

Kết quả:

+----------------------+
| Password             |
+----------------------+
| 76367_____8793443    |
| 12345_____9899984322 |
| 99999_____4747747432 |
+----------------------+

3. Truy vấn thay thế 6 ký tự từ vị trí 5 bằng 'PPPPPP'

mysql> SELECT INSERT(Password, 5, LENGTH('PPPPPP'), 'PPPPPP') FROM DemoTable;

4. Kết quả

+----------------------------------------------+
| INSERT(Password,5,LENGTH('PPPPPP'),'PPPPPP') |
+----------------------------------------------+
| 7636PPPPPP8793443                              |
| 1234PPPPPP9899984322                           |
| 9999PPPPPP4747747432                           |
+----------------------------------------------+

Giải thích: Vị trí 5 là ký tự cuối cùng của tiền tố (7, 5, 9). Hàm thay thế 6 ký tự gạch dưới (_) bằng 'PPPPPP'. Hàm LENGTH('PPPPPP') trả về 6.