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

MySQL:ganti kemunculan string di bidang kecuali yang pertama

Jika "MyString" akan selalu muncul sebagai istilah pertama di bidang, ini akan berhasil:

update MyTable set MyField = replace(MyField, ' MyString','')

Poin kunci di atas adalah kita mencari kemunculan "MyString" dengan spasi di depan, sehingga kemunculan pertama di awal kolom akan diabaikan.

Namun, tebakan saya apakah ini mungkin terlalu rapuh - bagaimana jika kemunculan pertama "MyString" bukan di awal bidang?

dalam kasus terakhir ini Anda memerlukan yang berikut:

UPDATE 
    MyTable 
SET 
    MyField = 
    CONCAT(
        LEFT(MyField,INSTR(MyField,'MyString') + LENGTH('MyString')), 
        REPLACE(RIGHT(MyField, LENGTH(MyField) - (INSTR(MyField,'MyString') + LENGTH('MyString'))), 'MyString','') 
    )

Apa yang dilakukan adalah membagi bidang menjadi dua, bagian pertama hingga dan termasuk kemunculan pertama "MyString", dan bagian kedua menggantikan semua kemunculan selanjutnya.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Saya tidak dapat menggunakan MySQL karena koneksi yang ditolak

  2. Cara mendapatkan UUID yang dihasilkan oleh MySQL menjadi variabel C#

  3. Keranjang belanja dan manajemen stok

  4. Koneksi dekat MYSQL tidak dapat menghentikan aktivitas penyisipan

  5. Memasukkan string ke MySQL