2012-04-02 7 views
1

내 테이블 그림그림이라는 열이 있으며 그 열에서 가장 높은 숫자를 원합니다. 각 행은 그림에 고유 번호가 있으며 각 행의 행은 입니다. 그러나 하나 또는 두 개의 행은 열에 숫자가 없으며 일부 텍스트가 대신 표시됩니다. 포도 같은. 여기에 테이블의 예열에서 가장 높은 숫자를 얻으려면 어떻게합니까?

는 ... 그래서

TABLE: pictures 
___________________ 
| caption | pic | 
|-------------------| 
| some | 1 | 
| random | 2 | 
| thing | 3 | 
| here |grapes | 
|___________________| 

는 어떻게 3이 될 것입니다 열 그림에서 가장 높은 수를 얻을 것?

그림varchar입니다.

+5

약간의 접선이지만 숫자와 문자열이 하나의 열에 함께 섞여있는 것이 걱정됩니다. – aaaidan

답변

5
SELECT MAX(CONVERT(pic, UNSIGNED INTEGER)) AS max_pic 
FROM pictures 
WHERE CONVERT(pic, UNSIGNED INTEGER) IS NOT NULL 

WHERE pic = pic + 0 조건은 최대 값을 사용할 얻을 수있는 숫자 값

+0

죄송합니다, ** 포도 **를 선택하십시오. –

+0

@ 스키 로이드 : 이제 새 업데이트가 있습니까? – zerkms

+0

아직 ** 포도 **, 죄송합니다. –

1

에게 사용 MAX() 경우 확인하는 데 도움이 트릭이다. 이

SELECT MAX(pic) FROM `pictures` WHERE CONVERT(`pic`, SIGNED INTEGER) IS NOT NULL 
+0

'grapes' – zerkms

+0

@zerkms를 반환합니다. 고치다. – Starx

+0

값이 '0'이고 유일한 값인 경우 어떻게해야합니까? ;-)하지만 실제로, 대부분의 경우 작동 할 것입니다. – zerkms

0

이 SQL 시도처럼 : 열 유형에 따라

SELECT MAX(pic) FROM pictures 

를 서로 다른 결과를 얻을 수 있습니다.

+0

열 유형은 ** varchar **입니다. ** 포도 **를 선택합니다 :( –

관련 문제