Найти и заменить результаты REGEX новой строкой - PullRequest
0 голосов
/ 02 ноября 2018

Я хочу заменить 10-значный номер изображения ID на одну текстовую строку в моей базе данных WP (wp_post field: post_content)

pictureid=0001234567 (где последние 7 цифр различны для каждой фотографии)

до одного значения:

sourceids=2518

Когда я запрашиваю номера pictureID с помощью REGEX, кажется, что он возвращает все записи, которые я хочу изменить.

SELECT * FROM `wp_posts` WHERE `post_content` REGEXP 'pictureid=000[0-9][0-9][0-9][0-9][0-9][0-9][0-9]'

Далее: что нужно сделать, чтобы изменить pictureID в найденных записях на sourceids=2518

Я попробовал

update wp_posts set post_content = replace(post_content, 'REGEXP 'pictureid=000[0-9][0-9][0-9][0-9][0-9][0-9][0-9]'','sourceids=2518'); 

но это не сработает

Ответы [ 2 ]

0 голосов
/ 04 ноября 2018

Извините, ответ плохо отформатирован, поэтому будет делать это так

Это не работает, я сделал следующее: тестирование REGEXP:

ВЫБРАТЬ * ОТ wp_posts ГДЕ post_content REGEXP 'pictureid = 0001119708' = РАБОТАЕТ

ВЫБРАТЬ * ОТ wp_posts ГДЕ post_content REGEXP 'pictureid = 000 [0-9] [0-9] [0-9] [0-9] [0-9] [0-9] [0 -9] '= РАБОТАЕТ

Попытка заменить 'pictureid = 000 #######' (где # - любое числовое значение, например: 00012345670, на это единственное значение 'sourceids-2518'

ВЫБРАТЬ * ОТ wp_posts ГДЕ post_content REGEXP_REPLACE ('pictureid = 000 [0-9] [0-9] [0-9] [0-9] [0-9] [0-9] [ 0-9] ',' sourceids = 2518 ') = НЕ РАБОТАЕТ

0 голосов
/ 02 ноября 2018

Использование REGEXP_REPLACE(pictureid,'000[0-9][0-9][0-9][0-9][0-9][0-9][0-9]',sourceid)

...