如果我的表格有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行的时间戳(希望看到两个选项,例如精确对和反向对) )
答案 0 :(得分:2)
这回答了问题的原始版本。
我认为您想要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);