업데이트 대상 테이블은 FROM 절에 지정할 수 없습니다.
P粉354602955
P粉354602955 2023-08-27 14:46:57
0
2
384
<p>간단한 mysql 테이블이 있습니다:</p> <pre class="brush:php;toolbar:false;">`pers`가 존재하지 않는 경우 테이블 생성( `persID` int(11) NOT NULL AUTO_INCREMENT, `이름` varchar(35) NOT NULL, `gehalt` int(11) NULL이 아님, `chefID` int(11) 기본 NULL, 기본 키(`persID`) ) 엔진=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=4; INSERT INTO `pers` (`persID`, `name`, `gehalt`, `chefID`) 값 (1, 'blb', 1000, 3), (2, 'as', 1000, 3), (3, '요리사', 1040, NULL);</pre> <p>다음 업데이트를 실행해 보았지만 오류 1093만 수신했습니다. </p> <pre class="brush:php;toolbar:false;">P당 업데이트 SET P.gehalt = P.gehalt * 1.05 어디에서(P.chefID가 NULL이 아닌지 OR 게할트 < (선택하다 ( 최대 선택(gehalt * 1.05) MA Pers에서 MA.chefID = MA.chefID) AS_pers ))</pre> <p>오류를 검색하여 mysql http://dev.mysql.com/doc/refman/5.1/en/subquery-restrictions.html에서 다음 페이지를 찾았지만 도움이 되지 않았습니다. </p> <p>SQL 쿼리를 어떻게 수정하나요? </p>
P粉354602955
P粉354602955

모든 응답(2)
P粉237125700

이 작업은 세 단계로 수행할 수 있습니다.

으아악

...

으아악

또는

으아악
P粉481815897

문제는 어떤 어리석은 이유로든 MySQL에서는 다음과 같은 쿼리 작성을 허용하지 않는다는 것입니다.

으아악

즉, 테이블에서 UPDATE/INSERT/DELETE 작업을 수행하려는 경우 내부적으로 쿼리 할 수 없습니다(그러나 외부 테이블의 필드는 참조할 수 있습니다...)


해결책은 아래와 같이 하위 쿼리에

를 넣는 것입니다 myTable实例替换为(SELECT * FROM myTable) 으아악

이렇게 하면 필요한 필드가 임시 테이블에 암시적으로 복사되므로 이는 허용됩니다.

이 솔루션을

여기에서 찾았습니다. 이 기사에 대한 참고 사항:

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿