max/sum/avg 등의 함수들은 aggregate 함수들로서 반드시 group by 구문과 함께 사용되어야 합니다. 그러니 아래 SQL 문은 잘못된 것입니다.

 

만약 subquery 가 지원되는 상황이라면 다음과 같이 하셔야 합니다.

 

update board set uno=(select max(uno) from board) where bid=\1\;

 

아직까지 MySQL 에서 subquery 를 지원하지 않으므로 사용자 정의변수를 사용하는 방법이 있을 것 같군요. 연구해 보시기 바랍니다. :-)

 

-- 이수정 님이 쓰신 글:

>> mysql> update board set uno = max(uno) where bid = \1\;

>>

>> ERROR 1111: Invalid use of group function

>>

>>

>> 도움 부탁드립니다.

>>

>>

>> 감사합니다.


출처 - http://database.sarang.net/?inc=read&aid=13402&criteria=mysql&subcrit=&id=115&limit=20&keyword=lock&page=19



Posted by linuxism

댓글을 달아 주세요