Пример запроса к базе данных не выполняется;Вы можете помочь мне решить проблему? - PullRequest
0 голосов
/ 11 февраля 2019

Я пытаюсь обновить таблицу базы данных Wordpress под названием "dogs_postmeta".Ниже приведен мой запрос, который идеально подходит для отображения всех соответствующих данных.

select meta_value as field_i_want_to_change, i.url as data
from dogs_postmeta
inner join (select a.post_id, CONCAT('https://mydomain/wp-content/uploads/', b.meta_value) as url
from
dogs_postmeta a, dogs_postmeta b
where
a.meta_key = '_thumbnail_id' and
b.post_id = a.meta_value and
b.meta_key = '_wp_attached_file'
) i
on i.post_id = dogs_postmeta.post_id
where
dogs_postmeta.meta_key = "_seopress_pro_rich_snippets_article_img"
limit 100;

Я хочу обновить существующее поле - meta_value с указанным выше свойством data.Я был в этом в течение нескольких часов без успеха.

Вот что я попробовал.

update dogs_postmeta
set dogs_postmeta.meta_value = i.url
from (select a.post_id, CONCAT('https://mydomain/wp-content/uploads/', b.meta_value) as url
from
dogs_postmeta a, dogs_postmeta b
where
a.meta_key = '_thumbnail_id' and
b.post_id = a.meta_value and
b.meta_key = '_wp_attached_file'
) i
inner join dogs_postmeta on dogs_postmeta.post_id = i.post_id 
where
dogs_postmeta.meta_key = "_seopress_pro_rich_snippets_article_img";

Я получаю это сообщение об ошибке -

Ошибка в запросе (1064): синтаксическая ошибка рядом с 'from (выберите a.post_id, CONCAT (' https://mydomain/wp-content/uploads/', b.meta_va 'в строке 3

... но яуверен, что это не проблема.

Может ли кто-нибудь помочь мне решить эту проблему?

1 Ответ

0 голосов
/ 11 февраля 2019
update dogs_postmeta as d
inner join (select a.post_id,  b.meta_value as url
from
dogs_postmeta a, dogs_postmeta b
where
a.meta_key = '_thumbnail_id' and
b.post_id = a.meta_value and
b.meta_key = '_wp_attached_file'
) as i on d.post_id = i.post_id 
set d.meta_value = CONCAT('https://mydomain/wp-content/uploads/', i.url)
where
d.meta_key = "_seopress_pro_rich_snippets_article_img";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...