db 최대값 칼럼이름 가져오기

db 최대값 칼럼이름 가져오기

QA

db 최대값 칼럼이름 가져오기

답변 5

본문

사진과 같이 게시판에 가중치를 DB에 저장시켰는데 테이블 하나를 더 만들어 이 한 행에서 최대값을 가진 칼럼의 이름을 저장하고싶습니다. 도무지 방법이 떠오르지 않아 도와주세요 ㅜㅠ991344294_1599792664.8688.png

이 질문에 댓글 쓰기 :

답변 5

이런건 php 코드로 한번 돌리는게 좋을것 같습니다만,,,,
방법이 없다면, 다음과 같이 해볼수 있습니다.

SELECT Name, @highest_val:= GREATEST(type1, type2, type3) AS highest_col_value,
   CASE @highest_val WHEN type1 THEN 'type1'
                     WHEN type2 THEN 'type2'
                     WHEN type3 THEN 'type3'                         
   END AS highest_value_column_name
FROM myTable 
Where unique_column = {som_value...}


 

일괄 업데이트 할려면 위의 쿼리를 응용해서 만드시면 될것 같네요.

 

select max(ca_id_10) as ca_id_10_max, max(ca_id_20) as ca_id_20_max, max(ca_id_30) as ca_id_30_max, max(ca_id_40) as ca_id_40_max from table 

이렇게 해서 그 값을 넣으면 각 필드에 최대값 아닐까요 ?

값을 비교하면 네 필드중 가장 큰 값을 가진 컬럼을 뽑는 것도 가능할 것 같네요 

필드 4개에 들어가는 최대값이 항상 40인가요?

두개 이상의 필드에 40이 들어가는 경우는 없나요?

더 상세한 설명이 잇어야겟네요

 

처음부터 필드에 값 입력/수정시 최대값 필드명를 다른 여분 필드에 저장하는 방식으로 하면

간단한 일일텐데요

레코드수가 많다면 loop를 돌려서 한번 최대값 필드명을 저장하고 다음부터는 입력시

최대값 필드를 등록하는 코드를 만들어 사용하는 것이....

 

 

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 17,127
© SIRSOFT
현재 페이지 제일 처음으로