2014-02-25 11 views
7

내가 MySQL의 특정 숫자 열의 합을 확인하려면,이 예 번호 (100)이상한 행동

하지만 좋겠 반환

SELECT SUM(MyColumn) FROM MyTable WHERE 1; 

할 합계 값에 텍스트를 씁니다 좋아, 그래서

SELECT CONCAT('Sum is: ',SUM(MyColumn)) FROM MyTable WHERE 1; 

을 대신 Sum is: 100을 얻는 나는 546573743a20343030 같은 것을 얻는다.

이것은 버그 또는 기능입니까? 내가 도대체 ​​뭘 잘못하고있는 겁니까?

UPDATE

SELECT CONCAT('Sum is: ',CAST(SUM(MyColumn) AS varchar(20))) FROM MyTable WHERE 1; 

VARCHAR로 캐스팅하는 것은 작동하지 않습니다 SQL 구문 오류가 발생.

+0

그래, 확실히 기능입니다. 한 번 캐스팅을 시도하십시오. 'CONCAT ('합계 :', CAST (SUM (MyColumn) AS varchar (20)) ' – Kermit

+0

1) 왜 하향 보입니까? 이것은 좋은 질문입니다. 2) 나는 캐스팅을 시도했지만 작동하지 않습니다. – NumberFour

+0

'MyColumn'의 데이터 유형은 무엇입니까?,'SUM (MyColumn) '은 어떤 값을 반환합니까? – Lamak

답변

6

FreshPrinceOfSO 내 질문에 아래의 의견에 제안 된대로 MySQL 서버는 varchar으로 캐스트를 처리하지 않습니다.

그래서 비록 쿼리 구문 오류에

SELECT CONCAT('Sum is: ',CAST(SUM(MyColumn) AS varchar(20))) FROM MyTable WHERE 1; 

결과, char에 캐스팅하는 대신 잘 작동 :

SELECT CONCAT('Sum is: ',CAST(SUM(MyColumn) AS char(20))) FROM MyTable WHERE 1;