Masalah:
Anda ingin mengekstrak substring dari teks di kolom tertentu.
Contoh:
Basis data kami memiliki tabel bernama web_address
dengan data pada kolom id
dan address
. Kami ingin menghapus ‘www.
' di awal dan '.com
' di akhir setiap address
.
id | alamat |
---|---|
1 | www.example.com |
2 | www.google.com |
3 | www.learnsql.com |
Solusi 1:
Untuk menghapus 4 karakter pertama:
SELECT SUBSTR(address, 5, LENGTH(address) -4) AS substring FROM web_address;
Untuk menghapus 4 karakter terakhir:
SELECT SUBSTR(address, 1, LENGTH(address) -4) AS substring FROM web_address;
Untuk menghapus 4 karakter pertama dan 4 karakter terakhir:
SELECT SUBSTR(address, 5, LENGTH(address) -8) AS substring FROM web_address;
Solusi 2:
Untuk menghapus 4 karakter pertama:
SELECT SUBSTRING(address, 5, LENGTH(address)) AS substring FROM web_address;
Untuk menghapus 4 karakter terakhir:
SELECT SUBSTRING(address, 1, LENGTH(address) -4) AS substring FROM web_address;
Untuk menghapus 4 karakter pertama dan 4 karakter terakhir:
SELECT SUBSTRING(address, 5, LENGTH(address) -8) AS substring FROM web_address;
Solusi 3:
Untuk menghapus semua karakter sebelum '.' kedua dari kanan:
SELECT SUBSTRING_INDEX(address, '.', -2) AS substring FROM web_address;
Untuk menghapus semua karakter setelah '.' kedua dari kiri:
SELECT SUBSTRING_INDEX(address, '.', 2) AS substring FROM web_address;
Untuk menghapus semua karakter setelah '.' kedua dari kiri, lalu hapus semua karakter sebelum '.' pertama dari kanan:
SELECT SUBSTRING_INDEX( SUBSTRING_INDEX(address, '.', 2), '.', -1 ) AS substring FROM web_address;
Hasilnya adalah:
substring |
---|
contoh |
belajar sql |
Diskusi:
Solusi pertama dan kedua menghapus sejumlah karakter tertentu dari teks dengan SUBSTR()
atau SUBSTRING()
fungsi. SUBSTR()
adalah sinonim untuk SUBSTRING()
. Keduanya membutuhkan string dan posisi awal sebagai argumen. Argumen terakhir, yang menentukan jumlah karakter yang akan diekstrak, adalah opsional. Jika argumen terakhir dihilangkan, seluruh string (dari titik awal) akan dikembalikan.
Dalam solusi ketiga, SUBSTRING_INDEX()
fungsi menghapus teks sebelum atau sesudah karakter yang ditentukan. Ini membutuhkan sebagai argumen string, karakter, dan berapa banyak contoh karakter yang harus ditemui di mana ekstraksi teks dimulai.