Такое вообще возможно реализовать запросами?
Легко :)
Если предположить, что параметр "year" не может быть первым в наборе параметров и его длина всегда равна 4, то так:
UPDATE
`dle_post`
SET
`date` = CONCAT(
LEFT(SUBSTR(`xfields`, LOCATE('||year|', `xfields`)+7), 4),
RIGHT(`date`, 15)
)
WHERE
LOCATE('||year|', `xfields`) > 0
Уточненные требования:
дату не нужно вычислять, а просто указать свою - для всех новостей у которых стоит год 1997.
Совпадение текста с поиском, не правильно выразился.
Если он находит такой год (значение, в данном примере 1997) в колонке xfields то меняем на произвольную дату (указанную вручную) в колонке date
Решение:
UPDATE
`dle_post`
SET
`date` = CONCAT(
'2014-03-24', # подставьте тут нужную дату
RIGHT(`date`, 9)
)
WHERE xfields LIKE '%year|1997%' # подставьте тут желаемый год