MySQL 정렬 특정 단어를 우선순위에 두기

MySQL을 이용할 경우에 정렬을 사용할때가 있습니다. 문자를 숫자로 변형해서 하기도 하고 Abc순으로 할 수도 있고 가나다 방법등 다양하게 사용을 할 수 있습니다. 보통의 방법으로 오름차순, 내림차순 정렬을 사용하면은 원하는 결과물에 대해서 정렬을 해서 목록을 만들수 있습니다.

하지만, 특정 단어가 목록중에서 가장 최상단에 와야 하는 경우라는 보통의 방법으로는 할 경우에는 WHERE 조건후에 다른것까지 붙이다 보면은 원하는 정렬이 되지 않아서 고생을 하게 됩니다.

ORDER BY 
CASE 
	WHEN 정렬컬럼명 = '정렬단어A' THEN 1 
	WHEN 정렬컬럼명 = '정렬단어B' THEN 2
	WHEN 정렬컬럼명 = '정렬단어C' THEN 3
	WHEN 정렬컬럼명 = '정렬단어D' THEN 4
	ELSE
		10
END
, 정렬컬럼명2 ASC

위에 예제를 이용 할 경우에는 1차적으로 정렬컬럼명을 통해서 정렬을 시도하고 정렬컬럼명2를 통해서 정렬을 하기 때문에 원하는 단어를 문저 올려서 처리를 할 수 있습니다.

잘 사용을 하지 않지만은 꼭 필요할때 유용하게 사용을 할 수 있을것 같아서 글을 남깁니다.

이전글
다음글

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다