MariaDB
 sql >> Base de Dados >  >> RDS >> MariaDB

Como REPLACE() funciona no MariaDB


No MariaDB, REPLACE() é uma função de string integrada que permite substituir uma parte de uma string por outra string.

A função aceita três argumentos:a string, a substring a ser substituída e a string pela qual substituir a substring.

Sintaxe


A sintaxe fica assim:
REPLACE(str,from_str,to_str)

Onde str é a string e from_str é a substring a ser substituída e to_str é a string pela qual substituir essa substring.

Exemplo


Segue um exemplo básico:
SELECT REPLACE('Black dog', 'dog', 'cat');

Resultado:
+------------------------------------+
| REPLACE('Black dog', 'dog', 'cat') |
+------------------------------------+
| Black cat                          |
+------------------------------------+

Neste caso, substituímos a substring dog com cat .

Várias correspondências


Se a string a ser substituída ocorrer várias vezes dentro da string, todas as ocorrências serão substituídas:
SELECT REPLACE('Black dogs and white dogs', 'dog', 'cat');

Resultado:
+----------------------------------------------------+
| REPLACE('Black dogs and white dogs', 'dog', 'cat') |
+----------------------------------------------------+
| Black cats and white cats                          |
+----------------------------------------------------+

Sem correspondência


Se a substring não ocorrer na string, REPLACE() retorna a string inalterada:
SELECT REPLACE('Black dog', 'horse', 'cat');

Resultado:
+--------------------------------------+
| REPLACE('Black dog', 'horse', 'cat') |
+--------------------------------------+
| Black dog                            |
+--------------------------------------+

Sensibilidade de maiúsculas e minúsculas


O REPLACE() função executa uma correspondência com distinção entre maiúsculas e minúsculas:
SELECT REPLACE('Black dog', 'Dog', 'Cat');

Resultado:
+------------------------------------+
| REPLACE('Black dog', 'Dog', 'Cat') |
+------------------------------------+
| Black dog                          |
+------------------------------------+

Neste exemplo, o caso não correspondeu e, portanto, nada foi substituído.

Strings vazias


Aqui está o que acontece quando uma string vazia é passada para cada argumento dado:
SELECT 
    REPLACE('', 'dog', 'cat') AS "1",
    REPLACE('Black dog', '', 'cat') AS "2",
    REPLACE('Black dog', 'dog', '') AS "3";

Resultado:
+------+-----------+--------+
| 1    | 2         | 3      |
+------+-----------+--------+
|      | Black dog | Black  |
+------+-----------+--------+

Então neste caso:
  • Passar uma string vazia para a string inicial retorna uma string vazia.
  • Passar uma string vazia para o segundo argumento retorna a string original.
  • Passar uma string vazia para o terceiro argumento remove a string a ser substituída da string.

Caráter Espacial


Uma string vazia não é o mesmo que o caractere de espaço.

Aqui está o que acontece quando alteramos a string vazia para um espaço:
SELECT 
    REPLACE(' ', 'dog', 'cat') AS "1",
    REPLACE('Black dog', ' ', 'cat') AS "2",
    REPLACE('Black dog', 'dog', ' ') AS "3";

Resultado:
+------+-------------+---------+
| 1    | 2           | 3       |
+------+-------------+---------+
|      | Blackcatdog | Black   |
+------+-------------+---------+

Portanto, se a string não for nada além de um espaço, podemos substituí-la por outra string:
SELECT REPLACE(' ', ' ', 'cat');

Resultado:
+--------------------------+
| REPLACE(' ', ' ', 'cat') |
+--------------------------+
| cat                      |
+--------------------------+

Argumentos nulos


Fornecendo null resulta em null :
SELECT 
    REPLACE(null, 'dog', 'cat') AS "1",
    REPLACE('Black dog', null, 'cat') AS "2",
    REPLACE('Black dog', 'dog', null) AS "3";

Resultado:
+------+------+------+
| 1    | 2    | 3    |
+------+------+------+
| NULL | NULL | NULL |
+------+------+------+

Argumento ausente


Chamando REPLACE() com o número errado de argumentos ou sem passar nenhum argumento resulta em um erro:
SELECT REPLACE();

Resultado:
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ')' at line 1