CI 묻고 답하기

제목 order by 시에 case 문 삽입
글쓴이 sam 작성시각 2013/08/06 15:19:40
댓글 : 5 추천 : 0 스크랩 : 0 조회수 : 17135   RSS
order by 절에 case 가 들어가는데 

$orderby_string =   "case category ".
         " when 'a' then 'client' ".
         " when 'b' then 'customer' ".
        "end ";
  $this->db->order_by($orderby_string);

이렇게 하니깐

ORDER BY `case` category when 'a' then 'client'
 
이런식으로 되서 에러가 생깁니다. 

where 절의 경우는 active record 에 나온대로 하니깐 괜찮은데  order by는 따로 설명이 나와있지 않더라고요.

이런경우 어떤식으로 처리하나요 ?

 다음글 C->C 접근이 가능한가요? (5)
 이전글 Database 메모리 문제 (3)

댓글

수야디벨 / 2013/08/06 15:34:57 / 추천 0
sam / 2013/08/06 15:51:24 / 추천 0
수야디벨// 글에도 남겼지만..  active record 에서 나온 where 절은  잘 되는데  order by 절은 따로 그런 처리 방식이 안나와있더라고요.. 제가 못찾은건지... 남겨주신 링크에선 order_by 함수에 마땅한게 없네요..
수야디벨 / 2013/08/06 18:07:07 / 추천 0
하려고 하시는 쿼리문은 알고 계신거에요?

저도 쿼리문은 잘 몰라서 쿼리문 교정은 정확히는 못알려  드리는데,

본인이 적어야 할 쿼리문은 알고 있는데 AR로 표현하는데 어려움을 느끼시는거라면

AR안쓰시고 SQL문  쓰시는것도 방법중 하나네요.

http://codeigniter-kr.org/user_guide_2.1.0/database/examples.html 에서 객체버전 쓰시면 될듯
한대승(불의회상) / 2013/08/07 09:57:19 / 추천 0
sam// 이 경우는 수야디벨님 말대로 sql문을 직접 작성하시는것이 좋을것 같습니다.
sam / 2013/08/07 12:21:49 / 추천 0

아 그냥 sql 문을 사용할 수 있군요.   기존에 되있는 소스들 다루는데 ci 처음써보는거라서 몰랐네요^^

친절한 답변 감사드립니다.