У меня есть таблица с записью типа 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.
Как я могу заменить диапазон в этой записи?