Обновить значение столбца во внутреннем соединении двух таблиц с предложением where

Kenh Tre спросил: 28 апреля 2018 в 09:47 в: mysql

Вот запрос MySQL:

SELECT `wp_fcfebce_postmeta`.`post_id`,
        `wp_fcfebce_postmeta`.*
FROM `wp_fcfebce_posts`,`wp_fcfebce_postmeta`
WHERE `wp_fcfebce_postmeta`.`post_id`=`wp_fcfebce_posts`.`ID`
        AND `wp_fcfebce_posts`.`post_date_gmt` > '2018-05-20 00:00:00'
        AND `wp_fcfebce_posts`.`post_date_gmt` < '2018-05-20 23:59:59'
        AND `wp_fcfebce_postmeta`.`meta_key`='_wp_attached_file'

Я хочу обновить содержимое столбца meta_value в таблице wp_fcfebce_postmeta которые имеют условие из таблиц join wp_fcfebce_posts и wp_fcfebce_postmeta.

1 ответ

Tim Biegeleisen ответил: 28 апреля 2018 в 09:50

Предполагая, что вы хотите иметь ту же логику, что и в своем выборе, но применяете к обновлению, вы можете попробовать следующее:

UPDATE wp_fcfebce_postmeta t1
INNER JOIN wp_fcfebce_posts t2
    ON t1.post_id = t2.ID
SET t1.meta_value = 'some_value'
WHERE
    t2.post_date_gmt >= '2018-05-20' AND
    t2.post_date_gmt < '2018-05-21' AND
    t1.meta_key = '_wp_attached_file';

Обратите внимание, что я изменил ограничения даты в вашем .