Recherche de site Web

Existe-t-il quelque chose comme substr_replace dans MySQL ?


Pour cela, utilisez la fonction INSERT() de MySQL. INSERT(str, pos, len, newstr) renvoie la chaîne str, avec la sous-chaîne commençant à la position pos et les caractères len longs remplacés par la chaîne newstr. Renvoie la chaîne d'origine si pos n'est pas compris dans la longueur de la chaîne.

Il remplace le reste de la chaîne à partir de la position pos si len n'est pas dans la longueur du reste de la chaîne. Renvoie NULL si un argument est NULL.

Créons d'abord un tableau :

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

Insérez quelques enregistrements dans la table à l'aide de la commande insert :

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)

Affichez tous les enregistrements de la table à l'aide de l'instruction select :

mysql> select *from DemoTable;

Cela produira le résultat suivant :

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

Voici la requête pour implémenter la fonction INSERT() pour substr_replace dans MySQL :

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

Cela produira le résultat suivant :

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

Articles connexes: