Вставьте, если пара не существует - PullRequest
0 голосов
/ 08 января 2019

Если у меня есть таблица с 4 столбцами: rowId | userOneId | userTwoId | timestamp

Можно ли проверить, существует ли пара пользователей, и обновить отметку времени, если это так? А если его не существует, вставить новую строку?

Пример таблицы с ожидаемыми результатами:

rowId | userOneId | userTwoId |  timestamp
   1        a           b       <timestamp>
   2        a           c       <timestamp>

Теперь, если я хочу вставить в userOneId a и userTwoId b, будет обновлена ​​временная метка. Также возможно, если userOneId равно b и userTwoId равно b обновить также временную метку строки 1 (хотелось бы увидеть обе опции - т.е. для точных пар и для обратных пар)

1 Ответ

0 голосов
/ 08 января 2019

ЭТО ОТВЕТЫ НА ОРИГИНАЛЬНУЮ ВЕРСИЮ ВОПРОСА.

Я думаю, что вы хотите insert . . . on duplicate key update:

insert into t(useroneid, usertwoid, timestamp)
    values ($userondid, $usertwoid, $timestamp)
    on duplicate key update timestamp = values(timestamp);

Чтобы это работало, вам нужен уникальный индекс для (useroneid, usertwoid):

create unique index unq_t_useroneid_usertwoid on t(useroneid, usertwoid);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...