Это не WordPress специфично, но стоит отметить, что это WP дб Я работаю с ...Массового обновления MySQL таблица с данными сцепленных из другой таблицы
мне нужно обновить значение posts
таблицы post_title
для всех записей с post_type='appearance'
. Текущий post_title
начинается с нужного имени, но заканчивается «внешним видом [some #]». Таким образом, от «внешнего вида» до конца необходимо удалить, и его необходимо заменить на meta_value
из таблицы postmeta
, где meta_key = _place_id
и post_id
равна ID
из таблицы posts
.
Например: есть сообщение с ID 102
под названием «John Doe appearance 102». В таблице postmeta
, где meta_key = _place_id
и post_id = 102
, meta_value = 108
. Таким образом, конечным результатом будет то, что post_title = John Doe 108
.
Это сложно за пределами меня, но я думаю, что соединение необходимо. И я считаю, что два отдельных запроса имеют смысл. Так, что-то подобное:
UPDATE posts
SET post_title = TRIM(TRAILING ' appearance %' FROM post_title)
WHERE post_type='appearance'
и
UPDATE posts
left join postmeta on
posts.ID= postmeta.post_id
set
posts.post_title = CONCAT(posts.post_title, " ", postmeta.meta_value WHERE postmeta.meta_key = '_place_id')
Это выглядит великолепно. К сожалению, я получаю сообщение об ошибке: 'Неверное количество параметров в вызове функции native 'SUBSTRING_INDEX'' – David
@David Извините, исправил опечатку, теперь она должна работать. –
Спасибо. Красивый. Одна вещь, которая отсутствовала, но оказалась прекрасной, указывала post_type. – David