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