Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
TRANSLATE fungsi
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.
TRANSLATEmirip dengan REPLACE fungsi danREGEXP_ REPLACE fungsi, kecuali yang 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 USERS tabel dalam database TICKIT sampel. 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 | +----------------+---------------+