优化我的更新顺序

Jol*_*unk 4 mysql optimization update

每当用户更新他的个人资料时,我们都会进行一组查询,如下所示:

DELETE FROM `user_likes` WHERE `ID` = $id
INSERT INTO `user_likes` VALUES (DEFAULT, $id, $interest_id, $interest_name)
Run Code Online (Sandbox Code Playgroud)

有没有办法一步完成这一切?必须有办法,因为每个用户的兴趣 ID 都是不同的。请记住,实际上永远不必删除数据——它是一个一直在增长的集合。

Rol*_*DBA 6

如果您只是更新兴趣 ID 和名称,请使用 UPDATE

UPDATE user_likes SET
`interest_id` = $interest_id,
`interest_name` = '$interest_name'
WHERE `ID` = $id;
Run Code Online (Sandbox Code Playgroud)

如果您想机械地执行 aDELETE后跟 an UPDATE,请使用REPLACE

REPLACE INTO `user_likes` VALUES (DEFAULT, $id, $interest_id, $interest_name);
Run Code Online (Sandbox Code Playgroud)

请在开发数据库服务器上测试这些以确保这是您想要的