データベースに 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 クエリを作成する必要がありますか?
どちらがより効果的でしょうか?