MariaDB
 sql >> база данни >  >> RDS >> MariaDB

2 начина за замяна на подниз в MariaDB

Ако трябва да замените подниз с друг низ в 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 |
+---------------------------+---------------------------+

Също така, REGEXP_REPLACE() функцията следва правилата за чувствителност към малки и големи букви на ефективното съпоставяне. Съпоставянето се извършва независимо от главните и малки букви за съпоставянията, които не са чувствителни към малки и големи букви, и чувствително за съпоставянията, чувствителни към малки и големи букви и за двоични данни. Въпреки това чувствителността към малки и главни букви може да бъде отменена с помощта на (?i ) и (?-i ) Флагове на PCRE.

Вижте как REGEXP_REPLACE() Работи в MariaDB за примери за чувствителност към малки и големи букви и други.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как HEX() работи в MariaDB

  2. Какво да търсите, ако вашата MySQL репликация изостава

  3. Как CONCAT_WS() работи в MariaDB

  4. Как работи COALESCE() в MariaDB

  5. Какво е новото в MariaDB 10.6