Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Pour une expression données, remplace toutes les occurrences de caractères spécifiés par des produits de remplacement spécifiés. Les caractères existants sont mappés à des caractères de remplacement en fonction de leurs positions dans les arguments characters_to_replace et characters_to_substitute. Si le nombre de caractères spécifiés dans l’argument characters_to_replace est supérieur à celui de l’argument characters_to_substitute, les caractères supplémentaires depuis l’argument characters_to_replace sont omis dans la valeur de retour.
TRANSLATE est similaire à la Fonction REPLACE et la Fonction REGEXP_REPLACE, sauf que REPLACE remplace une chaîne entière par une autre chaîne et que REGEXP_REPLACE vous permet de rechercher un modèle d’expression régulière dans une chaîne, tandis que TRANSLATE fait plusieurs remplacements de caractère unique.
Si un argument a la valeur null, le retour est NULL
.
Syntaxe
TRANSLATE( expression, characters_to_replace, characters_to_substitute )
Arguments
- expression
-
Expression à traduire.
- characters_to_replace
-
Chaîne contenant les caractères à remplacer.
- characters_to_substitute
-
Chaîne contenant les caractères à remplacer.
Type de retour
VARCHAR
Exemples
Pour remplacer plusieurs caractères dans une chaîne, utilisez l’exemple suivant.
SELECT TRANSLATE('mint tea', 'inea', 'osin');
+-----------+
| translate |
+-----------+
| most tin |
+-----------+
Les exemples suivants utilisent les données de la table USERS de l’exemple de base de données TICKIT. Pour de plus amples informations, veuillez consulter Exemple de base de données.
Pour remplacer le signe arobase (@) par un point dans toutes les valeurs d’une colonne, utilisez l’exemple suivant.
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 |
+---------------------------------------+---------------------------------------+
Pour remplacer des espaces par des traits de soulignement et supprimer les points de toutes les valeurs d’une colonne, utilisez l’exemple suivant.
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 |
+----------------+---------------+