Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
FUNGSI TRANSLATE
Untuk ekspresi tertentu, menggantikan semua kemunculan karakter tertentu dengan pengganti tertentu. Karakter yang ada dipetakan ke karakter pengganti berdasarkan posisinya dalam argumen characters_to_replace dan characters_to_substitusi. Jika lebih banyak karakter ditentukan dalam argumen characters_to_replace daripada dalam argumen characters_to_substitusi, karakter tambahan dari argumen characters_to_replace dihilangkan dalam nilai pengembalian.
TRANSLATE mirip dengan GANTI fungsi danFungsi REGEXP_REPLACE, kecuali bahwa REPLACE mengganti satu seluruh string dengan string lain dan REGEXP_REPLACE memungkinkan Anda mencari string untuk pola ekspresi reguler, sementara TRANSLATE membuat beberapa substitusi karakter tunggal.
Jika ada argumen nol, pengembaliannya adalahNULL
.
Sintaks
TRANSLATE( expression, characters_to_replace, characters_to_substitute )
Argumen
- ekspresi
-
Ekspresi yang akan diterjemahkan.
- characters_to_replace
-
Sebuah string yang berisi karakter yang akan diganti.
- characters_to_substitusi
-
Sebuah string yang berisi karakter untuk menggantikan.
Jenis pengembalian
VARCHAR
Contoh
Untuk mengganti beberapa karakter dalam string, gunakan contoh berikut.
SELECT TRANSLATE('mint tea', 'inea', 'osin');
+-----------+
| translate |
+-----------+
| most tin |
+-----------+
Contoh berikut menggunakan data dari tabel USERS dalam database sampel TICKIT. Untuk informasi selengkapnya, lihat Database sampel.
Untuk mengganti tanda at (@) dengan titik untuk semua nilai dalam kolom, gunakan contoh berikut.
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 |
+---------------------------------------+---------------------------------------+
Untuk mengganti spasi dengan garis bawah dan menghapus periode untuk semua nilai dalam kolom, gunakan contoh berikut.
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 |
+----------------+---------------+