본문 바로가기
MySql

MySQL 행이 있으면 mysql에서 행을 삭제하십시오.

by 베이스 공부 2020. 11. 17.
반응형

다음과 같은 쿼리가 있습니다.

IF EXISTS(SELECT 1 FROM table1 WHERE col1 = ? LIMIT 1) THEN
DELETE FROM table2 WHERE col2 = ?
END IF

그러나 위의 쿼리가 작동하지 않는 이유를 모르겠습니다. 또한 이것은 작동하지 않습니다.

IF  EXISTS(SELECT 1 FROM table1 WHERE col1 = ? LIMIT 1) BEGIN
DELETE FROM table2 WHERE col2 = ?
END

MySQL은 구문 오류가 있다고 알려줍니다. 어떻게 해결할 수 있습니까?

 

해결 방법

 

조건을 DELETE WHERE 절로 이동하여 다음과 같이 동일한 효과를 얻을 수 있습니다.

DELETE FROM table2
WHERE col2 = ?
  AND EXISTS(SELECT 1 FROM table1 WHERE col1 = ? LIMIT 1)

두 개의 ? 는 원래 쿼리와 관련하여 위치를 바꿨습니다.

 

참조 페이지 https://stackoverflow.com/questions/32824107

 

 

반응형

댓글