Причина, по которой ваш запрос удаляет все строки, заключается в том, что если любая строка существует с id = 3
, выражение EXISTS
будет истинным для всех строк, следовательно, все они будут удалены.
Чтобы решить вашу проблему, вы можете просто написать
DELETE FROM Mistake_Table WHERE id=3
, и он удалит только строку с id = 3
, если она существует.