Mysql
 sql >> Baza danych >  >> RDS >> Mysql

MySQL :zamień wystąpienie ciągu w polu poza pierwszym

Jeśli „MyString” zawsze będzie występować jako pierwszy termin w polu, to zadziała:

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

Kluczowym punktem powyżej jest to, że szukamy wystąpień „MyString” ze spacją wiodącą, więc pierwsze wystąpienie na początku pola zostanie zignorowane.

Jednak domyślam się, że może to być zbyt delikatne - co jeśli pierwsze wystąpienie „MyString” nie znajduje się na początku pola?

w tym drugim przypadku potrzebne są:

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

Powoduje to podzielenie pola na dwie części, pierwsza część do pierwszego wystąpienia „MyString” włącznie, a druga część zastępuje wszystkie jego kolejne wystąpienia.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Pobieranie listy imion znajomych z MySQL

  2. Unikanie pomijania wiersza Przez next() Metoda zestawu wyników

  3. MySQL zwraca tylko jeden wiersz

  4. Wskazówki dotyczące monitorowania MySQL dla Moodle

  5. Dostarczone parametry do Zend_Auth_Adapter_DbTable nie wygenerowały poprawnej instrukcji sql