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
>>
>>
>> 도움 부탁드립니다.
>>
>>
>> 감사합니다.
'DB > MySQL' 카테고리의 다른 글
mysql - flush 문 (0) | 2012.09.01 |
---|---|
mysql - ORDER BY 여러가지 정렬 방법 (0) | 2012.08.29 |
mysql - errno 원인과 해결 (0) | 2012.08.21 |
mysql - DISTINCT 와 GROUP BY의 차이 (1) | 2012.08.20 |
mysql - union 연산자 (0) | 2012.08.20 |