Se você precisar substituir uma substring por outra string no MariaDB, aqui estão duas abordagens que você pode usar.
O REPLACE() Função
No MariaDB, o
REPLACE() A função é projetada especificamente para substituir uma substring dentro de outra string. Você fornece três argumentos ao chamar a função. Estas são a string, a substring e a string de substituição.
Exemplo:
SELECT REPLACE('My dog likes to dig holes', 'dog', 'cat'); Resultado:
+----------------------------------------------------+
| REPLACE('My dog likes to dig holes', 'dog', 'cat') |
+----------------------------------------------------+
| My cat likes to dig holes |
+----------------------------------------------------+ Neste caso, substituímos a substring
dog com cat . 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 |
+----------------------------------------------------+ O
REPLACE() função executa uma correspondência com distinção entre maiúsculas e minúsculas. Veja como
REPLACE() Funciona no MariaDB para mais exemplos. O REGEXP_REPLACE() Função
O
REGEXP_REPLACE() função é semelhante ao REPLACE() função, exceto que permite que você faça a correspondência de padrões usando expressões regulares. Isso faz com que
REGEXP_REPLACE() mais poderoso que REPLACE() , pois você pode combinar com partes de uma string para substituir substrings que seriam mais difíceis ou impossíveis de combinar usando apenas REPLACE() . Exemplo:
SELECT REGEXP_REPLACE('My cat has cuts', 'c.t', 'dog'); Resultado:
+-------------------------------------------------+
| REGEXP_REPLACE('My cat has cuts', 'c.t', 'dog') |
+-------------------------------------------------+
| My dog has dogs |
+-------------------------------------------------+ Expressões regulares podem ser muito poderosas, e este exemplo usa um exemplo muito simples. Para usar
REGEXP_REPLACE() efetivamente, você precisará saber o padrão correto a ser usado para o resultado desejado. Também é possível fornecer a string literal completa como padrão, assim como você usaria com o
REPLACE() função. Portanto, poderíamos reescrever o primeiro exemplo nesta página para usar
REGEXP_REPLACE() em vez de REPLACE() . Aqui está um exemplo que os executa lado a lado para ilustrar o que quero dizer:
SELECT
REPLACE('My dog likes to dig holes', 'dog', 'cat') AS "REPLACE()",
REGEXP_REPLACE('My dog likes to dig holes', 'dog', 'cat') AS "REGEXP_REPLACE()"; Resultado:
+---------------------------+---------------------------+ | REPLACE() | REGEXP_REPLACE() | +---------------------------+---------------------------+ | My cat likes to dig holes | My cat likes to dig holes | +---------------------------+---------------------------+
Além disso, o
REGEXP_REPLACE() A função segue as regras de diferenciação de maiúsculas e minúsculas da ordenação efetiva. A correspondência é realizada sem distinção entre maiúsculas e minúsculas para ordenações que não diferenciam maiúsculas de minúsculas e com distinção entre maiúsculas e minúsculas para ordenações que diferenciam maiúsculas de minúsculas e para dados binários. No entanto, a distinção entre maiúsculas e minúsculas do agrupamento pode ser substituída usando o (?i ) e (?-i ) sinalizadores PCRE. Veja como
REGEXP_REPLACE() Funciona no MariaDB para exemplos de diferenciação de maiúsculas e minúsculas e muito mais.