ORDER BY 에서 조건걸기

예를 들어 컬럼에 값이 한국 미국 일본 중국 이렇게 있는상태에서 중국만 맨 앞으로 오도록 정렬히는 방법

order by if(nara='중국','가', nara) asc 

재미나는 두가지 예제

1, 서울, 경기, 강원, 충남....순으로 정렬

$sqlstr = "select SIDO as SIDO1 from ZipCode group by SIDO order by 
  if(SIDO='서울', '10', 
    if(SIDO='경기', '09', 
      if(SIDO='강원', '30', 
        if(SIDO='충남', 'd', 
          if(SIDO='충북', 'e', 
            if(SIDO='전남', 'f', 
              if(SIDO='전북', 'g', 
                if(SIDO='경남', 'h', 
                  if(SIDO='경북', 'i', 
                    if(SIDO='제주', 'j', 
                      if(SIDO='부산', 'k', 
                        if(SIDO='대전', 'l', 
                          if(SIDO='대구', 'm', 
                            if(SIDO='광주', 'n', 
                              if(SIDO='인천', 'o', 
                                if(SIDO='울산', 'p', SIDO)))))))))))))))) asc";

2. 충청도, 전라도... 등으로 통합하여 나타내기.. 그런데 정렬이 안되네요.ㅠ.ㅠ

$sqlstr = "select 
  if(SIDO='충북', '충청', 
    if(SIDO='충남', '충청',
      if(SIDO='전남', '전라', 
        if(SIDO='전북', '전라', 
          if(SIDO='경북', '경상', 
            if(SIDO='경남', '경상', 
              if(SIDO='부산', '경상', 
                if(SIDO='대전', '경상', 
                  if(SIDO='대구', '경상', if(SIDO='광주', '전라', 
                    if(SIDO='인천', '경기', 
                      if(SIDO='울산', '경상', SIDO)))))))))))) as SIDO1 
  from ZipCode group by SIDO1 order by 
    if(SIDO='서울', 'a', 
      if(SIDO='경기', 'b', 
        if(SIDO='강원', 'c', 
          if(SIDO='충남', 'd', 
            if(SIDO='충북', 'e', 
              if(SIDO='전남', 'f', 
                if(SIDO='전북', 'g', 
                  if(SIDO='경남', 'h', 
                    if(SIDO='경북', 'i', 
                      if(SIDO='제주', 'j', 
                        if(SIDO='부산', 'k', 
                          if(SIDO='대전', 'l', 
                            if(SIDO='대구', 'm', 
                              if(SIDO='광주', 'n', 
                                if(SIDO='인천', 'o', 
                                  if(SIDO='울산', 'p', SIDO)))))))))))))))) asc";
평점을 남겨주세요
평점 : 5.0
총 투표수 : 1