>  기사  >  데이터 베이스  >  mysql의 하위 쿼리 위치에서 삭제 제한 사항 소개

mysql의 하위 쿼리 위치에서 삭제 제한 사항 소개

不言
不言앞으로
2019-02-21 11:53:164589검색

이 기사에서는 MySQL의 하위 쿼리에 대한 특정 참조 값이 있는 경우 이를 참조할 수 있다는 점을 소개합니다.

1. mysql을 사용하여 삭제 작업을 수행할 때 하위 쿼리의 FROM 절과 업데이트/삭제 개체가 동일한 테이블을 사용하면 오류가 발생합니다. (관련 권장 사항: MySQL 튜토리얼)

mysql> DELETE FROM 'tab'(GROUP BY field1,field2 HAVING COUNT(id)>1 태그에서 min(id) 선택);
오류: 할 수 있습니다. FROM 절에 업데이트 대상 테이블 'tab'을 지정하지 마세요. (FROM 절에 업데이트 대상 테이블 'tab'을 지정할 수 없습니다.)

"동일 테이블" 제한으로 인해 대부분의 경우 추가 레이어를 추가할 수 있습니다.

DELETE FROM 'tab' where id in
(
    select id from 
    (
        select max(id) from 'tab' GROUP BY field1,field2 HAVING COUNT(id)>1
    ) ids
);

2.delete from table... where table은 alias

  • mysql> delete from table a where a.id in (1,2); 구문 오류)

  • mysql> a.*에서 a.id를 (1,2)에서 선택합니다(성공적으로 실행됨)


위 내용은 mysql의 하위 쿼리 위치에서 삭제 제한 사항 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 segmentfault.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제