"그룹화 기준"을 수행 할 선택이 있습니다. 열 중 하나가 열거 형이며 각 그룹 (열거 형에서 가장 큰 색인을 가진 그룹)에 대해 가장 큰 값을 선택하려고합니다. 할 수있어 그룹에서 가장 큰 인덱스를 얻으려면인덱스에서 enum 요소를 얻는 방법
select MAX(enum_column+0) as enum_index
을 얻지 만 열거 형 인덱스를 열거 형 항목으로 되돌리려면 어떻게해야합니까?
예 : 내가 세 개의 열이있는 테이블 "군인"이 말 :
"id" - soldier's ID
"name" is the soldier's first name (a varchar field).
"rank" is the soldier's rank, and it is an enum:
{'private','sergent'...,'lieutenant' etc.}
가 지금은 각각의 제 이름을 찾고 싶어요 가정을, 그 이름을 가진 가장 높은 순위 사람이있다 .
select MAX(rank+0) as enum_index,name from soldiers group by name
을하지만 그것은 나에게 열거 필드의 최대 요소의 인덱스, 그리고 요소의 이름을 줄 것이다 : 나는 할 수있다. 그것은 나를 줄 것이다 즉 :
1 | john
2 | bob
을 내가 원하는 결과를 얻을 수있는 방법
'private' | john
'sergent' | bob
원하는 위치에?
rank가 string/varchar rank_name 값으로 변경되는 숫자 인 방법이 누락되었습니다. –
나는 당신을 이해하고 있는지 잘 모르겠다. 그러나 만약 당신이 ENUM 타입이기 때문에 어떻게 실행이 문자열에서 int로 변경되었는지를 설명하지 않았다는 것을 의미한다면 ... – olamundo