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

Cara Mengganti Bagian dari String di MySQL

Masalah:

Anda ingin mengganti bagian dari string dengan string lain di MySQL.

Contoh:

Database kami memiliki tabel bernama motorbike_sale dengan data di id , name , dan part_number kolom.

id nama nomor_bagian
1 Harley Davidson x 1245-AC2-25
2 Honda CB750-x 012-GK8-A8
3 Suzuki Hayabusa X 798-25-28

Kami ingin mengubah nomor bagian sepeda motor dengan mengganti semua karakter tanda hubung dengan garis miring.

Solusi 1:

SELECT name,
  REPLACE( part_number, '-', '/' ) as new_part_number
FROM motorbike_sale;

Kueri ini mengembalikan daftar nama sepeda motor dan nomor suku cadang baru. Perhatikan garis miring yang menggantikan tanda hubung di nomor bagian:

nama nomor_bagian_baru
Harley Davidson x 1245/AC2/25
Honda CB750-x 012/GK8/A8
Suzuki Hayabusa X 798/25/28

Diskusi:

Gunakan fungsi MySQL REPLACE() untuk mengganti substring (yaitu kata, karakter, dll.) dengan substring lain dan mengembalikan string yang diubah. Fungsi ini membutuhkan tiga argumen:

  • String yang akan diubah. (Dalam contoh kita, ini adalah kolom part_number .)
  • Substring yang akan diganti (yaitu karakter '-').
  • Substring yang akan disisipkan (yaitu karakter '/').

Perhatikan bahwa fungsi ini menggantikan semua kemunculan substring dalam string atau kolom yang diberikan. Dalam contoh kita, setiap part_number berisi tiga karakter tanda hubung, yang masing-masing diganti dengan garis miring.

Pada contoh berikutnya, kita akan mengganti semua contoh 'x' pada nama sepeda motor dengan '10'.

Solusi 2:

SELECT id,
  REPLACE( name, 'x', '10' ) as new_name,
  part_number
FROM motorbike_sale
WHERE id>1;

Kueri ini menggunakan klausa WHERE untuk memfilter catatan untuk baris dengan id nilai 2 atau lebih.

Perhatikan bahwa nama sepeda motor Honda diubah dari 'x' menjadi '10', tetapi nama sepeda motor Suzuki tidak diubah. Kenapa tidak? Karena REPLACE() peka huruf besar-kecil. Oleh karena itu, 'x' tidak sama dengan 'X'. Dalam contoh ini, 'x' diganti dengan '10', tetapi 'X' tidak berubah.

Permintaan ini menampilkan nama baru sepeda motor Honda dan nama lama sepeda motor Suzuki.

id nama_baru nomor_bagian
Honda CB750-10 012-GK8-A8
Suzuki Hayabusa X 798-25-28

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL Masukkan Ke Pilih

  2. Zona Waktu MySQL

  3. Perhatikan:Konversi larik ke string di

  4. GALAT 1067 (42000):Nilai default tidak valid untuk 'created_at'

  5. Bagaimana cara mendapatkan ID dari baris yang terakhir diperbarui di MySQL?