MySQL检查行是否存在并在同一查询中删除它

时间:2014-12-05 21:03:12

标签: php mysqli

我想在一个查询中执行以下操作,如果可能的话,我正在徘徊:

$rowsQ = $mysql->query("SELECT * FROM `table` WHERE (a='a' AND b='b')");
if($rowsQ->num_rows){
    $mysql->query("DELETE FROM `table` WHERE (a='a' AND b='b')");
}

我在WHERE EXISTS中看到了类似的东西,但只查询了不同的表,如下所示:

$mysql->query("DELETE FROM `table` WHERE EXISTS (SELECT * FROM `table2` WHERE table.id = table2.id)");

是否可以在同一张桌子上进行,如果是这样,我必须重写相同的条件,还是有更短的方法?

1 个答案:

答案 0 :(得分:1)

你可以简单地使用DELETE,如果行没有指定的值存在,查询将返回而不做任何事情。你可以避免使用select

DELETE FROM table WHERE a ='a' and b='b'