2010-05-03 10 views
3

데이터베이스 항목이 속한 열의 이름을 가져올 수 있습니까?mysql 항목의 열 가져 오기

아마도 col1, col2 및 col3 열 이름을 가진 세 개의 열이 있습니다. 이제 모든 항목에 최대 항목이있는 열을 선택하려고합니다.

Select name_of_column(max(col1,col2,col3)).

information_schema.COLUMNS 테이블에서 열의 위치를 ​​기준으로 열 이름을 요청할 수 있다는 것을 알고 있지만 테이블 내에서 데이터베이스 항목의 서수 위치를 얻으려면 어떻게해야합니까?

+0

'항목'이란 무엇입니까? 칼럼? 열의 값? RowID? – lexu

+0

테이블에 항목이 없습니다. 아마도 세 번째 행에있는 열 1의 항목 –

답변

1

당신이 순수 SQL에서이를 구현하려면, 당신은 CASE 문 및 추가 변수 사용할 수 있습니다

SELECT @m := GREATEST(col1, col2), 
CASE @m 
     WHEN col1 THEN 'col1' 
     WHEN col2 THEN 'col2' 
END 
FROM my_table 
+0

이것은 나의 필요에 맞는다 –

1

이 그런 다음 스크립트 언어의 결과를 반복해야합니다 테이블

SHOW COLUMNS FROM 'table'; 

에서 당신에게 열을 표시합니다.

+0

감사하지만 스크립트 언어를 사용하지 않고 항목의 열 이름을 가져 오는 다른 방법이 없습니까? –

1

당신은이 작업을 수행 할 수 있습니다 :

select 
    case true 
     when col1 > col2 and col1 > col3 then 'col1' 
     when col2 > col1 and col2 > col3 then 'col2' 
     when col3 > col1 and col3 > col2 then 'col3' 
    end 
from 
    mytable 

그러나 경우 최대 값을 여러 열에 표시됩니까?

+0

좋은 논증 그러나 나의 특별한 경우에 그것은 일어날 것 같지 않다. –

관련 문제