Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Funzione TRANSLATE
Per una data espressione, sostituisce tutte le occorrenze di caratteri specificati con sostituti specificati. I caratteri esistenti sono mappati per i caratteri sostitutivi in base alla loro posizione negli argomenti characters_to_replace e characters_to_substitute. Se vengono specificati più caratteri nell'argomento characters_to_replace rispetto all'argomento characters_to_substitute, i caratteri extra dall'argomento characters_to_replace vengono omessi nel valore di restituzione.
TRANSLATE è simile a Funzione REPLACE e a Funzione REGEXP_REPLACE, ad eccezione del fatto che REPLACE sostituisce un'intera stringa con un'altra stringa e REGEXP_REPLACE consente di cercare una stringa per un modello di espressione regolare, mentre TRANSLATE realizza più sostituzioni a carattere singolo.
Se qualsiasi argomento è null, il risultato è NULL
.
Sintassi
TRANSLATE( expression, characters_to_replace, characters_to_substitute )
Argomenti
- espressione
-
L'espressione da tradurre.
- characters_to_replace
-
Una stringa contenente i caratteri da sostituire.
- characters_to_substitute
-
Una stringa contenente i caratteri da sostituire.
Tipo restituito
VARCHAR
Esempi
Per sostituire vari caratteri in una stringa, utilizza l'esempio seguente.
SELECT TRANSLATE('mint tea', 'inea', 'osin');
+-----------+ | translate | +-----------+ | most tin | +-----------+
Negli esempi seguenti vengono utilizzati i dati della tabella USERS database di esempio TICKIT. Per ulteriori informazioni, consulta Database di esempio.
Per sostituire il simbolo at (@) con un punto per tutti i valori in una colonna, utilizza l'esempio seguente.
SELECT email, TRANSLATE(email, '@', '.') as obfuscated_email FROM users LIMIT 10;
+---------------------------------------+---------------------------------------+ | email | obfuscated_email | +---------------------------------------+---------------------------------------+ | Cum@accumsan.com | Cum.accumsan.com | | lorem.ipsum@Vestibulumante.com | lorem.ipsum.Vestibulumante.com | | non.justo.Proin@ametconsectetuer.edu | non.justo.Proin.ametconsectetuer.edu | | non.ante.bibendum@porttitortellus.org | non.ante.bibendum.porttitortellus.org | | eros@blanditatnisi.org | eros.blanditatnisi.org | | augue@Donec.ca | augue.Donec.ca | | cursus@pedeacurna.edu | cursus.pedeacurna.edu | | at@Duis.com | at.Duis.com | | quam@facilisisvitaeorci.ca | quam.facilisisvitaeorci.ca | | mi.lorem@nunc.edu | mi.lorem.nunc.edu | +---------------------------------------+---------------------------------------+
Per sostituire gli spazi con caratteri di sottolineatura ed eliminare i punti per tutti i valori in una colonna, utilizza l'esempio seguente.
SELECT city, TRANSLATE(city, ' .', '_') FROM users WHERE city LIKE 'Sain%' OR city LIKE 'St%' GROUP BY city ORDER BY city;
+----------------+---------------+ | city | translate | +----------------+---------------+ | Saint Albans | Saint_Albans | | Saint Cloud | Saint_Cloud | | Saint Joseph | Saint_Joseph | | Saint Louis | Saint_Louis | | Saint Paul | Saint_Paul | | St. George | St_George | | St. Marys | St_Marys | | St. Petersburg | St_Petersburg | | Stafford | Stafford | | Stamford | Stamford | | Stanton | Stanton | | Starkville | Starkville | | Statesboro | Statesboro | | Staunton | Staunton | | Steubenville | Steubenville | | Stevens Point | Stevens_Point | | Stillwater | Stillwater | | Stockton | Stockton | | Sturgis | Sturgis | +----------------+---------------+