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

Как REPLACE() работи в MariaDB

В MariaDB, REPLACE() е вградена функция за низ, която ви позволява да замените част от низ с друг низ.

Функцията приема три аргумента:низ, подниз за замяна и низ, с който да се замени поднизът.

Синтаксис

Синтаксисът е така:

REPLACE(str,from_str,to_str)

Където str е низът и from_str е поднизът за замяна и to_str е низът, с който да се замени този подниз.

Пример

Ето един основен пример:

SELECT REPLACE('Black dog', 'dog', 'cat');

Резултат:

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

В този случай заменихме поднизът 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() връща низа непроменен:

SELECT REPLACE('Black dog', 'horse', 'cat');

Резултат:

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

Чувствителност на регистрите

REPLACE() функцията извършва съвпадение с чувствителност към малки и големи букви:

SELECT REPLACE('Black dog', 'Dog', 'Cat');

Резултат:

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

В този пример корпусът не съвпада и така нищо не е заменено.

Празни низове

Ето какво се случва, когато се подаде празен низ за всеки даден аргумент:

SELECT 
    REPLACE('', 'dog', 'cat') AS "1",
    REPLACE('Black dog', '', 'cat') AS "2",
    REPLACE('Black dog', 'dog', '') AS "3";

Резултат:

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

Така че в този случай:

  • Подаване на празен низ за първоначалния низ връща празен низ.
  • Подаване на празен низ за втория аргумент връща оригиналния низ.
  • Подаване на празен низ за третия аргумент премахва низа, който трябва да бъде заменен от низа.

Символ за интервал

Празният низ не е същият като символа за интервал.

Ето какво се случва, когато променим празния низ в интервал:

SELECT 
    REPLACE(' ', 'dog', 'cat') AS "1",
    REPLACE('Black dog', ' ', 'cat') AS "2",
    REPLACE('Black dog', 'dog', ' ') AS "3";

Резултат:

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

Следователно, ако низът не е нищо друго освен интервал, тогава можем да го заменим с друг низ:

SELECT REPLACE(' ', ' ', 'cat');

Резултат:

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

Нулеви аргументи

Предоставяне на null води до null :

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

Резултат:

+------+------+------+
| 1    | 2    | 3    |
+------+------+------+
| NULL | NULL | NULL |
+------+------+------+

Липсващ аргумент

Извикване на REPLACE() с грешен брой аргументи или без подаване на аргументи води до грешка:

SELECT REPLACE();

Резултат:

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

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Преглед за 2018 г.:7 етапа на MariaDB, които може да сте пропуснали

  2. Как SIGN() работи в MariaDB

  3. Съвети за мигриране от MySQL репликация към MySQL Galera Cluster 4.0

  4. Използване на MariaDB Flashback на MySQL сървър

  5. MariaDB DATABASE() Обяснено