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

Как да вмъкнете низ в друг низ в MySQL с помощта на INSERT()

В MySQL можете да използвате INSERT() функция за вмъкване на низ в друг низ.

Можете или да замените части от низа с друг низ (например да замените дума), или да го вмъкнете, като запазите оригиналния низ (например добавите дума). Функцията приема 4 аргумента, които определят какъв е оригиналния низ, позицията, с която да се вмъкне новия низ, броя на знаците за изтриване от оригиналния низ и новия низ за вмъкване.

Ето синтаксиса:

INSERT(str,pos,len,newstr)

Където str е оригиналният низ, pos е позицията, в която ще бъде вмъкнат новият низ, len е броят на знаците за изтриване от оригиналния низ и newstr е новият низ за вмъкване.

Заменете дума

Ето пример, в който използвам INSERT() за да замените дума в низ:

SELECT INSERT('Cats and dogs', 6, 3, 'like');

Резултат:

Cats like dogs

Това ефективно замества думата and с думата like . Използвах 6 защото думата и започваше с 6 знака, а аз използвах 3 защото това е колко знака искам да изтрия (думата and е дълъг 3 знака).

Вмъкнете дума

Тук просто вмъквам дума, без да изтривам нищо от оригиналния низ:

SELECT INSERT('Cats and dogs', 10, 0, 'big ');

Резултат:

Cats and big dogs

Причината, поради която това не изтрива нищо от оригиналния низ, е, че посочих 0 (което означава, че нула знаци трябва да бъдат изтрити).

Стойности извън обхвата

Ако посочите позиция, която е извън дължината на оригиналния низ, MySQL ще върне оригиналния низ непроменен.

Пример:

SELECT INSERT('Cats and dogs', 20, 4, 'rabbits');

Резултат:

Cats and dogs

Ето още един пример, в който използвам отрицателна начална позиция:

SELECT INSERT('Cats and dogs', -1, 4, 'rabbits');

Резултат:

Cats and dogs

Това е една от разликите между INSERT() на MySQL функция и STUFF() на Transact-SQL функция. В T-SQL, STUFF() функцията ще върне NULL в тези случаи.

Вмъкване на NULL стойности

Друга област, където INSERT() на MySQL се различава от STUFF() на T-SQL е със стойности NULL. Ако се опитате да вмъкнете стойност NULL, MySQL ще върне NULL .

SELECT INSERT('Cats and dogs', 6, 3, NULL);

Резултат:

NULL

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Преобразувайте Unix timestamp в четлива от човека дата с помощта на MySQL

  2. Моят MySQL тригер не работи, прост синтаксис, не е сложен

  3. Използване на Passport със Sequelize и MySQL

  4. Запитване на ИНФОРМАЦИОННА СХЕМА на MySQL:Защо? Как?

  5. MySQL 8 Общи изрази за таблица CTE