INSERT INTO или Обновление - PullRequest
       33

INSERT INTO или Обновление

0 голосов
/ 26 марта 2019

Мой код обновляет одну и ту же строку несколько раз в одном запросе значениями из другой таблицы. Как обновить или создать новую запись в одном запросе? Как это сделать, если нет записи "forum_users_posts_in" с соответствующими данными

userid 
idcat
idcustom
create a new record (t.posts = 1)

Если такая запись существует, обновлять только ее (t.posts = t2.sum_total)

UPDATE #__forum_users_posts_in AS t
            JOIN (
            SELECT
            userid, count(*) AS sum_total
            FROM
            #__forum_messages AS t2
            WHERE
            T2.thread = '.$topicId.' and hold = 0
            GROUP BY
            t2.userid
            ) AS t2 ON t.userid = t2.userid and (idcat = '.$cat->id.' or idcustom = '.$selectcustom1.')
            SET  t.posts =  t.posts + t2.sum_total

1 Ответ

0 голосов
/ 26 марта 2019

Вы можете попробовать этот метод для создания или редактирования строки

INSERT INTO `table` (`columns`) VALUES
(...)
ON DUPLICATE KEY UPDATE
`column` = VALUES (`column`);
...