MySQL: заменить строку в mediumtext - PullRequest
0 голосов
/ 16 июня 2020

У меня есть таблица с записью типа mediumtext. Эта запись содержит закодированное содержимое веб-сайта с 40k + символами, например: <!-- {"type":"layout","children":[{"type":"section","props":{"style":"default","width":"default","vertical_align":"middle","title_position":"top-left","title_rotation":"left","title_breakpoint":"xl"...

В тексте есть следующий диапазон: ...<span id=\""myDate\"">26.05.2020<\/span>...

Я хотел бы заменить дату внутри диапазона на моя REGEXP_REPLACE -функция, которая работает, когда я использую текст:

UPDATE `jl72a_content` SET `fulltext` = REGEXP_REPLACE( 
    '...<span id=\""myDate\"">26.05.2020<\/span>...',
    '<span id=\"myDate\">(.*?)\\\/span>',
    '<span id=\"myDate\">my new value<\/span>')
WHERE id = 2;

Но у меня проблема в том, что я не могу использовать `fulltext` в качестве строки:

CREATE TEMPORARY TABLE temp SELECT `fulltext` FROM `jl72a_content` WHERE id = 2; 
UPDATE `jl72a_content` SET `fulltext` = REGEXP_REPLACE( 
    (SELECT `fulltext` FROM temp WHERE 1),
    '<span id=\"myDate\">(.*?)\\\/span>', 
    '<span id=\"myDate\">my new value<\/span>?')
WHERE id = 2; 

Я не могу преобразовать результат временной таблицы как `mediumtext`, а` varchar` ограничен 65 535.

Как я могу заменить диапазон в этой записи?

...