2011-02-08 7 views
0

난 열의 값을 요약하는 간단한 쿼리가 있습니다. 그러나 부울 값에 대한 문자열을 모든 값을 저장하고 그 이유 SUM 잘못 작동하는 ENUM 필드를 사용하고 있습니다. MySQL은 선택 및 정렬 중에 값에 대해 CASTING 연산을 수행 할 수 있지만 수학 함수에서는 작동하지 않는 것처럼 보입니다. 내가 뭔가 잘못하고SUM 쿼리 중에 CAST 값을 사용할 수 있습니까?

SELECT SUM(CAST(`tables` AS SIGNED)) AS total FROM event_guests WHERE `event_id`='1923' 

암 : 여기

내 쿼리의 예입니다?

+0

? 문자열 '0'또는 문자열 '1'? 부울 유형이라면 기본 MySQL'bit' 유형을 사용하지 않으시겠습니까? –

답변

1

SQL 변수에 casted 필드를 지정하십시오. 그런 다음 수학 연산에서 해당 변수를 사용하십시오. 말 그대로`tables` 필드의 내용


SET @v2 = CAST('tables' AS SIGNED); 
SELECT (@v1 := CAST(`tables` AS SIGNED)) AS signed_tables, SUM(@v1) AS total FROM event_guests WHERE `event_id` = '1923'; 
+0

예를 들어 주시겠습니까? – Nazariy

+0

시도했지만 결과가 동일합니다. SUM은 레코드 수를 계산합니다. – Nazariy

관련 문제