Computer >> Máy Tính >  >> Lập trình >> MySQL

Có điều gì giống như substr_replace trong MySQL không?

Đối với điều này, hãy sử dụng hàm INSERT () từ MySQL. INSERT (str, pos, len, newstr) trả về chuỗi str, với chuỗi con bắt đầu ở vị trí pos và ký tự len dài được thay thế bằng chuỗi newstr. Trả về chuỗi ban đầu nếu pos không nằm trong độ dài của chuỗi.

Nó thay thế phần còn lại của chuỗi từ vị trí pos nếu len không nằm trong độ dài của phần còn lại của chuỗi. Trả về NULL nếu bất kỳ đối số nào là NULL.

Đầu tiên chúng ta hãy tạo một bảng -

mysql> create table DemoTable
(
   Password varchar(50)
);
Query OK, 0 rows affected (0.51 sec)

Chèn một số bản ghi vào bảng bằng lệnh chèn -

mysql> insert into DemoTable values('76367_____8793443');
Query OK, 1 row affected (0.17 sec)
mysql> insert into DemoTable values('12345_____9899984322');
Query OK, 1 row affected (0.12 sec)
mysql> insert into DemoTable values('99999_____4747747432');
Query OK, 1 row affected (0.22 sec)

Hiển thị tất cả các bản ghi từ bảng bằng câu lệnh select -

mysql> select *from DemoTable;

Điều này sẽ tạo ra kết quả sau -

+----------------------+
| Password             |
+----------------------+
| 76367_____8793443    |
| 12345_____9899984322 |
| 99999_____4747747432 |
+----------------------+
3 rows in set (0.00 sec)

Sau đây là truy vấn để triển khai hàm INSERT () cho substr_replace trong MySQL -

mysql> select insert(Password,5,length('PPPPPP'),'PPPPPP') from DemoTable;

Điều này sẽ tạo ra kết quả sau -

+----------------------------------------------+
| insert(Password,5,length('PPPPPP'),'PPPPPP') |
+----------------------------------------------+
| 7636PPPPPP8793443                            |
| 1234PPPPPP9899984322                         |
| 9999PPPPPP4747747432                         |
+----------------------------------------------+
3 rows in set (0.00 sec)