Computer >> 컴퓨터 >  >> 프로그램 작성 >> MySQL

MySQL에 substr_replace와 같은 것이 있습니까?

<시간/>

이를 위해 MySQL의 INSERT() 함수를 사용합니다. INSERT(str, pos, len, newstr)는 문자열 str을 반환하며, 하위 문자열은 pos 위치에서 시작하고 len 문자는 newstr 문자열로 대체됩니다. pos가 문자열 길이 내에 있지 않으면 원래 문자열을 반환합니다.

len이 나머지 문자열의 길이 내에 있지 않으면 위치 pos에서 나머지 문자열을 대체합니다. 인수가 NULL이면 NULL을 반환합니다.

먼저 테이블을 생성하겠습니다 -

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

삽입 명령을 사용하여 테이블에 일부 레코드 삽입 -

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)

select 문을 사용하여 테이블의 모든 레코드 표시 -

mysql> select *from DemoTable;

이것은 다음과 같은 출력을 생성합니다 -

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

다음은 MySQL에서 substr_replace에 대한 INSERT() 함수를 구현하는 쿼리입니다 -

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

이것은 다음과 같은 출력을 생성합니다 -

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