여러 테이블에서 행을 삭제하고 싶습니다. 어떻게해야합니까? 나는 여러 테이블에서 행 삭제
DELETE a.*, b.*, c.*
FROM table1 as a, table2 as b, table3 as c
WHERE a.colName = 'value'
AND b.colName = 'value'
AND a.c.colName = 'value';
'value'
모든 테이블에 같은뿐만 아니라 colName
입니다
이 쿼리 레코드는 모든 테이블에 있어야하지만 필자의 경우 레코드는 테이블에 있거나 없을 수 있습니다. 삭제 쿼리를 실행하면 기존 레코드가 삭제되고 그렇지 않으면 '0 row(s) affected'
가 반환됩니다. 그래서 간단히이 쿼리를 3 번 실행하고 싶습니다.
DELETE FROM table1 WHERE colName = 'value';
DELETE FROM table1 WHERE colName = 'value';
DELETE FROM table1 WHERE colName = 'value';
을 하나의 쿼리로 실행하고 싶습니다.
감사합니다.
테이블 당 하나의 삭제를 발행합니다. – Randy
이점은 무엇입니까? 3 줄 예제는 더 짧고 디버그하기 쉽습니다. 반면, 단일 delete 문은 아무 이유없이 거대한 조인을 생성합니다. (그리고 내부적으로 실패한 이유는 내부 조인이기 때문에 외부 조인으로 바꾸는 것이 좋습니다.) –
PHP 서비스를 호출하여 이러한 레코드를 삭제하므로 하나의 쿼리 문자열에서 여러 쿼리를 보내는 경우 PHP 서비스가'mysql_query ($ query, $ link)'를 호출하기 때문에 작동하지 않을 것이다 mysql_query()는 보안상의 이유로 여러 문장을 실행할 수 없다 ... –