2014-12-05 48 views
1

我想做到以下幾點在一個查詢中,我是遊蕩,如果它甚至有可能:MySQL的檢查,如果行存在,並刪除它在同一查詢

$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存在,但只與一個不同的表像這樣的查詢:

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

是否有可能在同一個表做不過如果是的話我不得不重寫相同的條件下,還是有一個較短的方法嗎?

+0

你爲什麼不跑反正刪除?它不會刪除任何東西,如果條件不滿足 – Mihai 2014-12-05 21:07:03

+0

不存在如果行?你真的需要檢查他們是否? – Banzay 2014-12-05 21:07:53

回答

1

您可以簡單地使用DELETE,如果行不與指定的值一起存在,查詢將返回而不做任何事情。你可以避開select

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

Aaa,由於某種原因,我愚蠢的我肯定它會返回false,謝謝! – 2014-12-05 21:14:50