powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Как скопировать значение одной строки в другую? Ох уж этот WordPress...
4 сообщений из 4, страница 1 из 1
Как скопировать значение одной строки в другую? Ох уж этот WordPress...
    #40059129
Leo2021
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте!

Прошу помочь разобраться с ситуацией.

Сменил тему WordPress. Старая тема записывала кол-во просмотров статьи в произвольное поле с именем "post_views".
А новая тема записывает кол-во просмотров в поле "post_views_new".

В итоге такая картина в phpMyAdmin. Скриншот:
http://joxi.ru/Q2K6KlyTvkeMRm

И таких строк сотни, где на каждый post_id по два разных произвольных поля.

Чтобы не терять просмотры у всех статей - хочу скопировать значения "post_views" в значения "post_views_new".

Сначала думал, что всё просто и можно обойтись таким запросом:

UPDATE wp_postmeta SET post_views_new=post_views

Разумеется, не сработало, т.к. появляется ошибка, что "post_views_new" не является столбцом.
Оно и понятно, это ведь строка. Да и я только начал изучать MySQL.

То есть для одной и той же записи есть два разных произвольных поля с разными значениями кол-ва просмотров.
Осталось придумать как скопировать старые значения в новые, чтобы я потом мог смело удалить старое поле.

Надеюсь, описал правильно. Если что, вот ещё два поясняющих скриншота:

1. Старое произвольное поле: http://joxi.ru/LmGz6JlHlOEpGr
2. Новое произвольное поле: http://joxi.ru/eAOK3BJhk8W7aA

Прошу помочь составить MySQL запрос, который бы решил мою задачу.

Видимо, нужно как-то задействовать столбцы meta_key, meta_value и post_id одновременно.
...
Рейтинг: 0 / 0
Как скопировать значение одной строки в другую? Ох уж этот WordPress...
    #40059215
Fitter2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
UPDATE my_table mt
INNER JOIN (SELECT * FROM my_table WHERE meta_value IS NOT NULL ) as st
ON mt.post_id = st.post_id
SET mt.meta_value = st.meta_value
WHERE mt.meta_value IS NULL

Если не подходит, то в фиддле накидайте свои таблицы. https://dbfiddle.uk
...
Рейтинг: 0 / 0
Как скопировать значение одной строки в другую? Ох уж этот WordPress...
    #40059455
Leo2021
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо за помощь!

Тут надо заменить переменные?
Например, my_table - это wp_postmeta.

Не понятно, где задаётся старое и новое поле, то есть post_views и post_views_new. И что делает NULL.

Если что, новая тема уже заносит новые данные о просмотрах. То есть там не 0.

Например, для одной статьи в переменной post_views_new уже набежало пару просмотров. В другой 1, и т.д. Числа разные.

Просто показалось, что в вашем запросе идёт сравнение с нулём, поэтому не стал пока применять запрос.
...
Рейтинг: 0 / 0
Как скопировать значение одной строки в другую? Ох уж этот WordPress...
    #40059977
Fitter2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я в вашем скрине не вижу название таблицы.

Из вашего скрина :
SET mt.meta_value = st.meta_value

Идея была в том, что новые поля пустые. Тогда , как я понимаю остается искать новые поля по суффиксу "_new"

Если в новой теме не ноль, как будете это решать?

Полностью опишите задачу и накидайте, что-то в фиддле.
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Как скопировать значение одной строки в другую? Ох уж этот WordPress...
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]