powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Обновить поле с подзапросом
3 сообщений из 3, страница 1 из 1
Обновить поле с подзапросом
    #40038577
Фотография Sputnick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет!

В запросах не силен, ребята подскажите как корректно обновить поле вордпресс таблицы...

В моих записях есть два поля (дата время timestamp) - evcal_srow - дата начала и evcal_erow - дата конца. Иногда evcal_erow - пустое, мне необходимо запросом/апдейтом ставить в дату конца - время начала + 1 час.

Структура таблицы - https://i.imgur.com/unqhwyu.png

Для примера запись - https://i.imgur.com/SrwqtFy.png

Вот так пробую, но ошибка с этим подзапросом:
Код: sql
1.
2.
3.
4.
5.
UPDATE wp_postmeta 
SET `meta_value` =  (SELECT `meta_value` from wp_postmeta two  WHERE two.post_id = wp_postmeta.post_id AND  `meta_key` = 'evcal_srow' ) + 3600 
WHERE  `meta_key` = 'evcal_erow'
and `meta_value` = '' 
and `post_id`  =  1446 




Для теста на одной записи - `post_id` = 1446 , если успешно то условия айдишника уберу и выберет все пустые `meta_value` = ''
...
Рейтинг: 0 / 0
Обновить поле с подзапросом
    #40038587
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
2.
3.
4.
5.
6.
7.
UPDATE wp_postmeta t1
  JOIN wp_postmeta t2  ON t1.meta_key = 'evcal_srow'
                      AND t2.meta_key = 'evcal_erow'
                      AND t1.post_id = t2.post_id 
SET t2.meta_value = t1.meta_value + 3600
WHERE t2.meta_value IS NULL
-- AND t1.post_id = 1446 
...
Рейтинг: 0 / 0
Обновить поле с подзапросом
    #40038602
Фотография Sputnick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Akina
Код: sql
1.
2.
3.
4.
5.
6.
7.
UPDATE wp_postmeta t1
  JOIN wp_postmeta t2  ON t1.meta_key = 'evcal_srow'
                      AND t2.meta_key = 'evcal_erow'
                      AND t1.post_id = t2.post_id 
SET t2.meta_value = t1.meta_value + 3600
WHERE t2.meta_value IS NULL
-- AND t1.post_id = 1446 



спасибо большое, работает
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Обновить поле с подзапросом
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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