在MariaDB中替换子字符串的2种方法
如果您需要在 MariaDB 中用另一个字符串替换子字符串,您可以使用以下两种方法。
函数REPLACE()
在MariaDB中,该函数专门设计用于替换另一个字符串中的子字符串。REPLACE()
调用函数时提供三个参数。这些是字符串、子字符串和替换字符串。
例:
SELECT REPLACE('My dog likes to dig holes', 'dog', 'cat');
结果:
+—————————————————-+ | REPLACE(‘My dog likes to dig holes’, ‘dog’, ‘cat’) | +—————————————————-+ | My cat likes to dig holes | +—————————————————-+
在本例中,我们替换了子字符串。dog``cat
如果要替换的字符串在字符串中多次出现,则所有匹配项都将被替换:
SELECT REPLACE('Black dogs and white dogs', 'dog', 'cat');
结果:
+—————————————————-+ | REPLACE(‘Black dogs and white dogs’, ‘dog’, ‘cat’) | +—————————————————-+ | Black cats and white cats | +—————————————————-+
该函数执行区分大小写的匹配。REPLACE()
有关更多示例,请参阅REPLACE() 在 MariaDB 中的工作方式。
函数REGEXP_REPLACE()
该函数与函数类似,不同之处在于它允许您使用正则表达式进行模式匹配。REGEXP_REPLACE()``REPLACE()
这比,因为您可以匹配字符串的一部分来替换子字符串,这些子字符串在仅使用时更难或不可能匹配。REGEXP_REPLACE()``REPLACE()``REPLACE()
例:
SELECT REGEXP_REPLACE('My cat has cuts', 'c.t', 'dog');
结果:
+————————————————-+ | REGEXP_REPLACE(‘My cat has cuts’, ‘c.t’, ‘dog’) | +————————————————-+ | My dog has dogs | +————————————————-+
正则表达式可以非常强大,此示例使用了一个非常简单的示例。为了有效地使用,您需要知道用于所需结果的正确模式。REGEXP_REPLACE()
也可以提供完整的文本字符串作为模式,就像你与函数一起使用一样。REPLACE()
因此,我们可以重写此页面上的第一个示例以使用 代替。REGEXP_REPLACE()``REPLACE()
下面是一个并排运行它们的示例,以说明我的意思:
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()";
结果:
+—————————+—————————+ | REPLACE() | REGEXP_REPLACE() | +—————————+—————————+ | My cat likes to dig holes | My cat likes to dig holes | +—————————+—————————+
此外,该函数遵循有效排序规则的区分大小写规则。对于不区分大小写的排序规则,匹配不区分大小写,对于区分大小写的排序规则和二进制数据,匹配区分大小写。但是,可以使用 () 和 () PCRE 标志覆盖区分大小写的排序规则。REGEXP_REPLACE()``?i``?-i
请参阅MariaDB 中的 REGEXP_REPLACE() 如何工作,了解区分大小写的示例等。