반응형
다음과 같은 쿼리가 있습니다.
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
반응형
'MySql' 카테고리의 다른 글
MySQL 사용 된 테이블 유형은 FULLTEXT 인덱스를 지원하지 않습니다. (0) | 2020.11.17 |
---|---|
MySQL phpMyAdmin에서 편집시 날짜 열 자동 업데이트 (0) | 2020.11.17 |
MySQL 0000-00-00 00:00:00 값으로 날짜 시간을 NULL로 설정하는 방법은 무엇입니까? (0) | 2020.11.17 |
MySQL datetime 및 php를 사용하여 1 일, 7 일 및 30 일 전 mysql db에서 레코드 선택 (0) | 2020.11.17 |
MySQL Entity Framework 4 및 코드 우선 개발 CTP와 함께 MySql 사용 (0) | 2020.11.17 |
댓글