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

MySQL do zastąpienia za pomocą symbolu wieloznacznego

Aktualizacja:MySQL 8.0 ma funkcję REGEX_REPLACE() .

Poniżej moja odpowiedź z 2014 r., która nadal dotyczy dowolnej wersji MySQL przed 8.0:

REPLACE() nie obsługuje symboli wieloznacznych, wzorców, wyrażeń regularnych itp. REPLACE() zastępuje tylko jeden stały ciąg innym stałym ciągiem.

Możesz spróbować czegoś złożonego, aby wybrać wiodącą i końcową część ciągu:

UPDATE table
SET Configuration = CONCAT(
      SUBSTR(Configuration, 1, LOCATE('<tag>', Configuration)+4),
      NEW_DATA,
      SUBSTR(Configuration, LOCATE('</tag>', Configuration)
    )

Ale to nie działa w przypadkach, gdy masz wiele wystąpień <tag> .

Może być konieczne pobranie wiersza z powrotem do aplikacji, wykonanie zamiany ciągów przy użyciu ulubionego języka i ponowne przesłanie wiersza. Innymi słowy, trzyetapowy proces dla każdego rzędu.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Czy instrukcja merge jest dostępna w MySQL?

  2. MySQL:=true vs is true w BOOLEAN. Kiedy wskazane jest użycie którego? A który jest niezależny od dostawcy?

  3. Zrozumienie struktury rekordów MyISAM

  4. MySQL:czy w instrukcji SELECT rozróżniana jest wielkość liter?

  5. Jak wyodrębnić dwie kolejne cyfry z pola tekstowego w MySQL?