Do czego służy funkcja REPLACE(tekst, szukany, nowy) w języku SQL?
Poprawna jest odpowiedź o zamianie każdego wystąpienia ciągu. Funkcja REPLACE() przyjmuje trzy argumenty: tekst źródłowy, fragment do znalezienia i fragment, który ma go zastąpić. Zamienia wszystkie wystąpienia, nie tylko pierwsze, np. SELECT REPLACE('ala ma kota', 'a', 'o'); zwróci „olo mo koto”.
Do zapamiętania: w MySQL wyszukiwanie w REPLACE() rozróżnia wielkość liter. Podając pusty napis jako trzeci argument, można usunąć fragment z tekstu. Funkcja przydaje się w poprawianiu danych, np. UPDATE produkty SET opis = REPLACE(opis, 'zl', 'zł');. Nie należy jej mylić z poleceniem REPLACE INTO, które wstawia lub podmienia całe wiersze.
Każda z błędnych odpowiedzi opisuje inną funkcję tekstową. Łączenie kilku tekstów w jeden to zadanie CONCAT(), np. CONCAT(imie, ' ', nazwisko). Zamianę liter na wielkie wykonuje UPPER() - działa na wielkości liter, a nie na wskazanych fragmentach.
Wycięcie podłańcucha o podanej długości to SUBSTRING(tekst, pozycja, dlugosc), a fragment z początku lub końca zwracają LEFT() i RIGHT(). Te funkcje wybierają część tekstu, ale niczego w nim nie podmieniają. Wskazówką jest sama lista argumentów: funkcja z parametrami „szukany” i „nowy” musi coś znajdować i coś wstawiać w jego miejsce, a angielskie replace znaczy po prostu „zastąp”.
Funkcje te można zagnieżdżać, np. UPPER(REPLACE(kod, '-', '')) usunie myślniki i zamieni litery na wielkie. Każda z nich wykonuje jednak tylko jedną, ściśle określoną operację na tekście.