Mysql
 sql >> база данни >  >> RDS >> Mysql

MySQL за замяна с заместващ знак

Актуализация:MySQL 8.0 има функция REGEX_REPLACE() .

По-долу е моят отговор от 2014 г., който все още важи за всяка версия на MySQL преди 8.0:

REPLACE() няма никаква поддръжка за заместващи знаци, шаблони, регулярни изрази и т.н. REPLACE() само замества един константен низ с друг константен низ.

Можете да опитате нещо сложно, за да изберете водещата част на низа и задната част на низа:

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

Но това не работи в случаите, когато имате няколко поява на <tag> .

Може да се наложи да извлечете реда обратно в приложение, да извършите подмяна на низове, използвайки любимия си език, и да публикувате реда обратно. С други думи, процес от три стъпки за всеки ред.




  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

  2. Подредете записи на SQL заявки по честота

  3. Изпълняване на mySQL заявка като cron работа?

  4. Как да изчислим средните продажби на седмица в MySQL

  5. Как да добавя условия в подподподчинените дъщерни модели в sequelize, които трябва да повлияят на моя родителски модел в findAndCountAll?