我的数据库中有 5 个表:Category1 、 Category2 、 Category3 、 Category4 、 Category5
我有一个用户可能会或可能不会在这些表上找到。如果他被发现了,我想把他从桌子上删除。
我可以通过 5 个这样的查询来做到这一点:
//search if the user is already subscribed in every one of the categories
$stmt = $db->prepare("Select * FROM category1 WHERE deviceUDID = :deviceUDID");
$stmt->execute(array(':deviceUDID' => $deviceUDID));
if($rows_found = $stmt ->rowCount()) {
$stmt = $db -> prepare("DELETE FROM category1 WHERE deviceUDID =:deviceUDID");
$stmt->execute(array(':deviceUDID' => $deviceUDID));
}
然后对于 category2 :
//search if the user is already subscribed in every one of the categories
$stmt = $db->prepare("Select * FROM category2 WHERE deviceUDID = :deviceUDID");
$stmt->execute(array(':deviceUDID' => $deviceUDID));
if($rows_found = $stmt ->rowCount()) {
$stmt = $db -> prepare("DELETE FROM category1 WHERE deviceUDID =:deviceUDID");
$stmt->execute(array(':deviceUDID' => $deviceUDID));
}
以此类推其他类别..
是否可以使用 1 个查询在所有这些类别中进行搜索以使其更快?
但我看不出这样的事情是如何发生的逻辑......有什么想法吗?
编辑(奖金部分)
即使用户不在那里并且让查询失败,每次都进行 DELETE 查询会更容易、更快或更有效吗?
或者我应该首先检查每张表,如果发现进行 DELETE 查询?
哪一种可能更有效?