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

Как мога да използвам mySQL replace() за заместване на низове в множество записи?

На много общо ниво

UPDATE MyTable

SET StringColumn = REPLACE (StringColumn, 'SearchForThis', 'ReplaceWithThis')

WHERE SomeOtherColumn LIKE '%PATTERN%'

Във вашия случай казвате, че те са били екранирани, но тъй като не посочвате как са били екранирани, да кажем, че са били екранирани до GREATERTHAN

UPDATE MyTable

SET StringColumn = REPLACE (StringColumn, 'GREATERTHAN', '>')

WHERE articleItem LIKE '%GREATERTHAN%'

Тъй като вашата заявка всъщност ще работи вътре в низа, вашият WHERE клаузата, извършваща съвпадението на шаблона, е малко вероятно да подобри производителността - всъщност ще генерира повече работа за сървъра. Освен ако нямате друг член на клауза WHERE, който ще направи тази заявка по-добра, можете просто да направите актуализация като тази:

UPDATE MyTable
SET StringColumn = REPLACE (StringColumn, 'GREATERTHAN', '>')

Можете също да вложите няколко REPLACE обаждания

UPDATE MyTable
SET StringColumn = REPLACE (REPLACE (StringColumn, 'GREATERTHAN', '>'), 'LESSTHAN', '<')

Можете също да направите това, когато избирате данните (за разлика от това, когато ги запазвате).

Така че вместо :

SELECT MyURLString From MyTable

Можеш да направиш

SELECT REPLACE (MyURLString, 'GREATERTHAN', '>') as MyURLString From MyTable



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Извеждане на всички PHP грешки в базата данни, а не error_log

  2. Как да избера между 1-вия ден на текущия месец и текущия ден в MySQL?

  3. Как мога да видя на живо MySQL заявки?

  4. INSERT INTO...SELECT за всички MySQL колони

  5. Групово максимум