2010-02-22 4 views
2

을 예상대로되지 작업을 수행합니다. 열 싫어하는 경우 18446744073709551596 같은 mysql 반환 번호를 것보다 큰 것, 그래서 mysql이 서명되지 않은 및 음수를 반환 할 수 없습니다 MAX_UNSIGNED_INT 일종의 계산을 계속 처리 할 것 같습니다. 나는 올바른 결과를 가질 수있는 방법MySQL은 두 개의 정수 열 사이에 차이가 나는이 쿼리를 실행하고있어

+0

당신이 쇼의 결과는 mytable 테이블을 만들 추가 할 수 있을까요? – Dominik

답변

5

당신이 유형을 얻을 수있는 첫 번째 방법에서

SELECT id, convert(like, SIGNED) - convert(dislike, SIGNED) as result 
FROM mytable 

또는 결과 만

SELECT id, convert(like - dislike, SIGNED) as result 
FROM mytable 

(단지 그들에 어쩌면 나) 두 값을 전송 해 봅니다 과다! 두 번째 방법은 더 좋지만 mysql에서 작동하는지 잘 모르겠습니다.

+0

나는 CAST (UNSIGNED와 같은) - CAST (UNSIGNED와 같음)와 같은 것을 시도했지만 작동하지 않는다. –

+0

은 signed :)로 캐스팅되었다. CAST (UNSIGNED와 같이)를 사용하면 기본적으로 UNSIGNED에서 UNSIGNED로 캐스팅됩니다. – anthares

+0

젠장! 당신 말이 맞아요 ... 미안하지만 오늘은 아주 긴 하루입니다. –

1

당신은 int로서 그들을 캐스팅을 시도 할 수 :

SELECT id, CAST(like AS INT) - CAST(dislike AS INT) as result FROM mytable 
관련 문제