Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Cara Mengekstrak Substring Dari String di PostgreSQL/MySQL

Masalah:

Cara Mengekstrak Substring Dari String di PostgreSQL/MySQL

Contoh 1:

Di emails tabel, ada kolom email. Anda ingin menampilkan tujuh karakter pertama dari setiap email.

Tabelnya terlihat seperti ini:

email
[email protected]
[email protected]
[email protected]
[email protected]

Solusi 1:

SELECT
  email,
  SUBSTRING(email, 1, 7) AS substring
FROM emails;

Sintaks lain:

SELECT
  email,
  SUBSTRING(email FROM 1 FOR 7) AS substring
FROM emails;

Hasilnya adalah:

email substring
[email protected] jake99@
[email protected] tamarab
[email protected] notine@
[email protected] jessica

Diskusi:

Gunakan SUBSTRING() fungsi. Argumen pertama adalah string atau nama kolom. Argumen kedua adalah indeks karakter di mana substring harus dimulai. Argumen ketiga adalah panjang substring.

Hati-Hati! Tidak seperti di beberapa bahasa pemrograman lain, indeks dimulai dari 1 , bukan 0. Ini berarti karakter pertama memiliki indeks 1, karakter kedua memiliki indeks 2, dst.

SUBSTRING(email, 1, 7) akan mengembalikan substring dari nilai-nilai di kolom email yang dimulai pada awal string (karakter pertama) dan pergi untuk tujuh karakter. Notasi lainnya, SUBSTRING(email FROM 1 FOR 7) , melakukan hal yang sama persis. Argumen setelah FROM adalah indeks awal, dan argumen setelah FOR adalah panjang substring.

Argumen ketiga dari SUBSTRING() fungsi adalah opsional. Jika Anda menghilangkannya, Anda akan mendapatkan substring yang dimulai pada indeks dalam argumen kedua dan berlanjut hingga akhir string. SUBSTRING(email, 1) akan mengembalikan seluruh string, seperti halnya SUBSTRING(email FROM 1) .

Contoh 2:

Anda ingin menampilkan substring antara indeks 2 dan 6 (inklusif).

Solusi 2:

SELECT
  email,
  SUBSTRING(email, 2, 5) AS substring
FROM emails;

Sintaks lain:

SELECT
  email,
  SUBSTRING(email FROM POSITION('@' IN email)) AS substring
FROM emails;

Hasilnya adalah:

email substring
[email protected] @gmail.com
[email protected] @zoho.com
[email protected] @yahoo.fr
[email protected] @onet.pl

Diskusi:

Anda menggunakan SUBSTRING() fungsi seperti pada contoh sebelumnya. Kali ini, Anda sedang mencari karakter tertentu yang posisinya dapat bervariasi dari baris ke baris. Untuk menemukan indeks karakter tertentu, Anda dapat menggunakan POSITION(character IN column) fungsi, di mana karakter adalah karakter spesifik tempat Anda ingin memulai substring (di sini, @ ) . Kolom argumen adalah column dari mana Anda ingin mengambil substring; itu juga bisa berupa string literal.

Jika Anda ingin substring berjalan sampai akhir string asli, argumen ketiga di SUBSTRING() fungsi (atau FOR argumen) tidak diperlukan. Jika tidak, itu harus berupa panjang substring, atau Anda dapat menghitungnya menggunakan POSITION() fungsi. Anda mungkin juga ingin mengambil substring yang tidak berakhir di akhir string tetapi pada beberapa karakter tertentu, misalnya, sebelum '.'. Ini contohnya:

SELECT
  email,
  SUBSTRING(email, POSITION('@' IN email), POSITION('.' IN email) - POSITION('@' IN email)) AS substring
FROM emails;

Sintaks lain:

SELECT
  email,
  SUBSTRING(email FROM POSITION('@' IN email) FOR POSITION('.' IN email) - POSITION('@' IN email)) AS substring
FROM emails;

Hasil dari query ini adalah:

email substring
[email protected] @gmail
[email protected] @zoho
[email protected] @yahoo
[email protected] @onet

Bagian POSITION('.' IN email) - POSITION('@' IN email) cukup hitung panjang substring.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara Mendapatkan row_number di MySQL

  2. Bisakah Anda menggunakan alias di klausa WHERE di mysql?

  3. Bagaimana Fungsi MID() Bekerja di MySQL

  4. Query MySql Tingkat Lanjut:Perbarui tabel dengan info dari tabel lain

  5. MySQL – Perbaiki Kesalahan – Entri Duplikat Kesalahan Database WordPress untuk kunci PRIMARY for Query INSERT INTO wp_options