Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak wstawić ciąg do innego ciągu w MySQL za pomocą INSERT()

W MySQL możesz użyć INSERT() funkcja, aby wstawić ciąg do innego ciągu.

Możesz zastąpić części ciągu innym ciągiem (np. zamienić słowo) lub wstawić go z zachowaniem oryginalnego ciągu (np. dodać słowo). Funkcja akceptuje 4 argumenty, które określają, jaki jest oryginalny ciąg, pozycję, w której należy wstawić nowy ciąg, liczbę znaków do usunięcia z oryginalnego ciągu i nowy ciąg do wstawienia.

Oto składnia:

INSERT(str,pos,len,newstr)

Gdzie str jest oryginalnym ciągiem, pos jest pozycją, w której zostanie wstawiony nowy ciąg, len to liczba znaków do usunięcia z oryginalnego ciągu, a newstr to nowy ciąg do wstawienia.

Zamień słowo

Oto przykład, w którym używam INSERT() zastąpić słowo w ciągu:

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

Wynik:

Cats like dogs

To skutecznie zastępuje słowo and ze słowem like . Użyłem 6 ponieważ słowo i zaczynało się od znaku 6, a ja użyłem 3 bo tyle znaków chcę usunąć (słowo and ma długość 3 znaków).

Wstaw słowo

Tutaj po prostu wstawiam słowo bez usuwania czegokolwiek z oryginalnego ciągu:

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

Wynik:

Cats and big dogs

Powodem, dla którego to nie usuwa niczego z oryginalnego ciągu, jest to, że określiłem 0 (co oznacza, że ​​należy usunąć zero znaków).

Wartości poza zakresem

Jeśli określisz pozycję, która znajduje się poza długością oryginalnego ciągu, MySQL zwróci oryginalny ciąg bez zmian.

Przykład:

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

Wynik:

Cats and dogs

Oto kolejny przykład, w którym używam ujemnej pozycji początkowej:

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

Wynik:

Cats and dogs

Jest to jedna z różnic między INSERT() MySQL'a funkcji i funkcji STUFF() języka Transact-SQL funkcjonować. W T-SQL, STUFF() funkcja zwróci NULL w takich przypadkach.

Wstawianie wartości NULL

Kolejny obszar, w którym INSERT() w MySQL różni się od STUFF() T-SQLa ma wartości NULL. Jeśli spróbujesz wstawić wartość NULL, MySQL zwróci NULL .

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

Wynik:

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. Wspólne wyrażenie tabelowe w MySQL

  2. Znajdowanie zduplikowanych wartości w MySQL

  3. Pobieranie połączonej listy w bazie danych MySQL

  4. Ustaw PDO, aby domyślnie zgłaszało wyjątki

  5. Wydajność MySQL:MySQL kontra MariaDB