如果记录不存在则插入,否则在具有长查询的mysql中删除

时间:2014-12-21 18:31:22

标签: php mysql pdo

我有一个跟随系统,允许用户互相关注。我正在使用php pdo,因此它不支持多行查询,而是需要一个长查询。目前我正在使用以下代码

$query = $db->query("SELECT id FROM follow WHERE user1 = 'kim' AND user2 = 'tim' ");
if($query->rowCount() > 0 ){
    $db->query("DELETE * FROM follow WHERE user1 = 'kim' AND user2 = 'tim' ");
}else{
    $db->query("INSERT INTO follow (user1,user2) VALUES ('kim','tim') ");
}

所以我想要的是一个长查询而不是多个查询语句。除了我需要的长查询外,我还需要获取指示记录是插入还是删除的数据。(也许这个问题是重复的,但这是不重复的部分)我怎样才能实现它?

1 个答案:

答案 0 :(得分:0)

这是"长查询"

IF EXISTS (SELECT id FROM follow WHERE user1 = 'kim' AND user2 = 'tim' )
BEGIN
    DELETE * FROM follow WHERE user1 = 'kim' AND user2 = 'tim'
END
ELSE
BEGIN
    INSERT INTO follow (user1,user2) VALUES ('kim','tim')
END

如果它太长了"长"把它放在存储过程中。