Il REPLACE()
di MySQL La funzione consente di sostituire tutte le occorrenze di una sottostringa con un'altra stringa. Ti permette di fare cose come sostituire tutte le occorrenze di una parola con un'altra, ecc.
Questo articolo ne dimostra l'utilizzo.
Sintassi
Ecco come va la sintassi:
REPLACE(str,from_str,to_str)
Dove str
è la stringa che contiene le sottostringhe. from_str
è la sottostringa che vuoi sostituire con un'altra stringa. E to_str
è la nuova stringa che sostituirà la vecchia stringa.
Esempio
Ecco un esempio di base:
SELECT REPLACE('Cats and dogs and cats and rabbits', 'and', 'or') AS Result;
Risultato:
+---------------------------------+ | Result | +---------------------------------+ | Cats or dogs or cats or rabbits | +---------------------------------+
In questo caso, scambiamo semplicemente la parola and
con la parola or
. Poiché c'erano tre occorrenze di quella parola, tutte e tre sono state sostituite.
Maiuscole/minuscole
È importante ricordare che REPLACE()
la funzione fa distinzione tra maiuscole e minuscole.
Esempio:
SELECT REPLACE('Cats and dogs and cats and rabbits', 'cat', 'flea') AS Result;
Risultato:
+-------------------------------------+ | Result | +-------------------------------------+ | Cats and dogs and fleas and rabbits | +-------------------------------------+
In questo caso, solo un'istanza di cat
è stato sostituito, perché solo un'istanza aveva il caso giusto. La prima istanza aveva una C
maiuscola quindi non corrispondeva.
Rimuovi una sottostringa
Puoi anche rimuovere del tutto una sottostringa, semplicemente sostituendo la sottostringa con la stringa vuota (''
):
SELECT REPLACE('http://www.database.guide', 'www.', '') AS Result;
Risultato:
+-----------------------+ | Result | +-----------------------+ | http://database.guide | +-----------------------+
Una salvaguardia
Un altro modo (forse più sicuro) per farlo è includere parte del testo circostante, quindi rimuovere la parte non necessaria:
SELECT REPLACE('http://www.database.guide', 'http://www.', 'http://') AS Result;
Risultato:
+-----------------------+ | Result | +-----------------------+ | http://database.guide | +-----------------------+
Questo protegge dalla rimozione involontaria di una sottostringa che non dovrebbe essere rimossa. Ad esempio, se abbiamo un URL come http://bestwww.com
, che si trasformerebbe inavvertitamente in http://bestcom
senza la salvaguardia.
La stessa protezione può essere applicata nei casi in cui stai sostituendo il testo (non solo rimuovendolo). Ad esempio, questo:
SELECT REPLACE('Land of cats and dogs and sand', ' and ', ' or ') AS Result;
Risultato:
+------------------------------+ | Result | +------------------------------+ | Land of cats or dogs or sand | +------------------------------+
In questo caso ho aggiunto uno spazio prima e dopo la sottostringa e il suo testo sostitutivo.
Se non l'avessi fatto, avrei finito con questo:
SELECT REPLACE('Land of cats and dogs and sand', 'and', 'or') AS Result;
Risultato:
+----------------------------+ | Result | +----------------------------+ | Lor of cats or dogs or sor | +----------------------------+