Jeśli znasz program SQL Server, być może wiesz, że możesz użyć funkcji STUFF()
języka T-SQL funkcja do wstawienia ciągu w ciągu. Jak się okazuje, MySQL ma podobną funkcję – ale pod inną nazwą.
INSERT()
w MySQL funkcja robi zasadniczo to samo, co T-SQL STUFF()
funkcja działa.
Z wyjątkiem kilku drobnych różnic (patrz poniżej), obie funkcje działają dokładnie tak samo.
Składnia
Oto oficjalna składnia każdej z tych funkcji.
T-SQL – funkcja STUFF()
STUFF ( character_expression , start , length , replaceWith_expression )
MySQL – funkcja INSERT()
INSERT(str,pos,len,newstr)
Chociaż każda z tych definicji używa innej terminologii, zasadniczo robią to samo.
Przykłady
Oto przykład działania każdej z tych funkcji.
T-SQL – funkcja STUFF()
SELECT STUFF('Cats and dogs', 6, 3, 'like');
Wynik:
Cats like dogs
MySQL – funkcja INSERT()
SELECT INSERT('Cats and dogs', 6, 3, 'like');
Wynik:
Cats like dogs
Jak widać, jedyną różnicą jest nazwa funkcji. Możemy przenieść jedno na drugie, po prostu zmieniając nazwę funkcji.
Różnice między STUFF() i INSERT()
Istnieje kilka różnic w działaniu tych funkcji. W szczególności dwie główne różnice dotyczą sposobu, w jaki radzą sobie z:
- Pozycje poza zasięgiem
- Wartości NULL
Różnice te wyjaśniono poniżej.
Pozycje poza zasięgiem
Jeśli spróbujesz wstawić w miejscu, które jest poza długością oryginalnego ciągu, INSERT()
MySQL funkcja zwróci oryginalny ciąg. Z drugiej strony STUFF()
w T-SQL funkcja zwróci NULL
.
T-SQL – funkcja STUFF()
SELECT STUFF('Cats and dogs', 20, 4, 'rabbits');
Wynik:
NULL
MySQL – funkcja INSERT()
SELECT INSERT('Cats and dogs', 20, 4, 'rabbits');
Wynik:
Cats and dogs
WARTOŚCI NULL
Te dwie funkcje różnią się również sposobem, w jaki radzą sobie z wartościami NULL, które próbujesz wstawić.
T-SQL – funkcja STUFF()
SELECT STUFF('Cats and dogs', 6, 3, NULL);
Wynik:
Cats dogs
T-SQL – funkcja INSERT()
SELECT INSERT('Cats and dogs', 6, 3, NULL);
Wynik:
NULL