Fungsi Substring - MySQL Dasar #7

Fungsi Substring - MySQL Dasar #7


Substring() merupakan fungsi yang mengambil argumen berupa string dari posisi awal sehingga menghasilkan semua karakter disebelah kanan. Anda bisa menggunakan parameter substring(nama_kolom, str)

ket : str merupakan nilai string yang akan diambil dari posisi awal sehingga menghasilkan karakter disisi kanan

Perhatikan query berikut :

MariaDB [codexam]> SELECT nama, substring(nama,3) FROM metal;
+----------+-------------------+
| nama     | substring(nama,3) |
+----------+-------------------+
| copper   | pper              |
| gold     | ld                |
| iron     | on                |
| lead     | ad                |
| mercury  | rcury             |
| platinum | atinum            |
| silver   | lver              |
| tin      | n                 |
+----------+-------------------+
8 rows in set (0.00 sec)


Jika Anda ingin menghasilkan semua karakter baik disisi kiri atau kanan dari karakter tertentu maka Anda bisa menggunakan parameter substring_index(str,c,n).

Ket : (str,c,n). c adalah nilai string yang dicari, n merupakan jumlah string/karakter yang dicari dan c merupakan nilai sensitif, maksudnya karakter 'a' akan berbeda dengan 'A'. Nilai n juga bisa menunjukan posisi keberapa sebuah karakter yang terdapat pada string

Fungsi substring_index ini akan melakukan pencarian pada string str dan menghasilkan semua karakter di sisi kiri dari kemunculan karkater c yang ke-n. Dan jika n bernilai negatif maka pencarian terhadap c akan dimulai dari sisi kanan dan akan menghasilkan semua karakter di sisi kanan karakter tersebut.

Perhatikan query berikut

MariaDB [codexam]> SELECT nama, substring_index(nama,'a',1) FROM buah;
+-----------+-----------------------------+
| nama      | substring_index(nama,'a',1) |
+-----------+-----------------------------+
| anggur    |                             |
| apel      |                             |
| durian    | duri                        |
| dukuh     | dukuh                       |
| melon     | melon                       |
| mangga    | m                           |
| manggis   | m                           |
| markisa   | m                           |
| jeruk     | jeruk                       |
| lemon     | lemon                       |
| strobery  | strobery                    |
| udun      | udun                        |
| ogon-ogon | ogon-ogon                   |
+-----------+-----------------------------+
13 rows in set (0.00 sec)


Pada contoh query diatas, kita melakukan pencarian terhadap karakter 'a' dengan jumlah satu karakter, dimana bisa Anda lihat sendiri pada karakter bahwa pada string Mangga menampilkan 'M' sedangkan pada string Durian menghasilkan karakter 'Duri' ini menunjukan dia akan menampilkan semua karakter disisi kiri dari kemunculan karakter 'a' disisi kanan karakter.

Nilai 'n' dari (str,c,n) menunjukan posisi keberapa sebuah karakter yang terdapat pada string. Misalnya jika terdapat 2 karakter 'g' dalam string MANGGA kemudian , kemudian Anda masukan 2 pada nilai N, maka string yang ditampilkan disebelah kiri adalah MANG.

Perhatikan query berikut

MariaDB [codexam]> SELECT nama, substring_index(nama,'g',2) FROM buah;
+-----------+-----------------------------+
| nama      | substring_index(nama,'g',2) |
+-----------+-----------------------------+
| anggur    | ang                         |
| apel      | apel                        |
| durian    | durian                      |
| dukuh     | dukuh                       |
| melon     | melon                       |
| mangga    | mang                        |
| manggis   | mang                        |
| markisa   | markisa                     |
| jeruk     | jeruk                       |
| lemon     | lemon                       |
| strobery  | strobery                    |
| udun      | udun                        |
| ogon-ogon | ogon-o                      |
+-----------+-----------------------------+
13 rows in set (0.00 sec)



Jika Anda lihat pada query diatas, hanya karakter yang memiliki huruf 2 huruf 'g' yang terpengaruh, dan huruf g yang pertama akan ditampilkan disebelah kiri.

Selanjutnya jika 'n' dari (str,c,n) bernilai negatif, maka hasil query akan memulai pencarian dari sebelah kanan, dan akan menghasilkan semua karakter disebelah kanan setelah ditemukannya nilai dari 'c' .

Perhatikan query berikut

MariaDB [codexam]> SELECT nama, substring_index(nama,'g',2),substring_index(nama,'g',-1) FROM buah;
+-----------+-----------------------------+------------------------------+
| nama      | substring_index(nama,'g',2) | substring_index(nama,'g',-1) |
+-----------+-----------------------------+------------------------------+
| anggur    | ang                         | ur                           |
| apel      | apel                        | apel                         |
| durian    | durian                      | durian                       |
| dukuh     | dukuh                       | dukuh                        |
| melon     | melon                       | melon                        |
| mangga    | mang                        | a                            |
| manggis   | mang                        | is                           |
| markisa   | markisa                     | markisa                      |
| jeruk     | jeruk                       | jeruk                        |
| lemon     | lemon                       | lemon                        |
| strobery  | strobery                    | strobery                     |
| udun      | udun                        | udun                         |
| ogon-ogon | ogon-o                      | on                           |
+-----------+-----------------------------+------------------------------+
13 rows in set (0.03 sec)



dari query diatas bisa disimpulkan bahwa substring_index dengan nilai negatif akan menghasilkan semua karakter disebelah kanan dari 'c' sedangkan sebaliknya jika bukan, maka akan menghasilkan karakter disebelah kiri dari 'c' (str,c,n)
 
Baca Selanjutnya : Fungsi Locate - MySQL Dasar #8

0 Response to "Fungsi Substring - MySQL Dasar #7"

Post a Comment

Silahkan untuk meninggalkan komentar, santai saja dan mulailah berkomentar...