CI 묻고 답하기

제목 or_like 질문입니다.
글쓴이 템포 작성시각 2013/01/11 18:13:45
댓글 : 5 추천 : 0 스크랩 : 0 조회수 : 16185   RSS
쿼리 문제상

like 쓰고 or like를 써서 조인을 하는데요

or을 걸어버리니

where .... 컬럼 LIKE '%test%' escape '!' OR 컬럼2 LIKE '%te%' escape '!'  이렇게 하면 데이터가 안나오구

where .... 컬럼 LIKE '%test%' escape '!' OR 컬럼2 LIKE '%%' escape '!'  이렇게 하면 다른 WHERE 조건 절 무시하고
모든 데이터가 나옵니다.

쿼리할때보면

OR쓸때 () 괄호 해서 우선연산자 쓰는것도 있던걸로 기억하는데 CI에서 사용가능한가요?

DB는 오라클 DB 사용중입니다.


 다음글 코드이그나이터 메모리 사용량에 관한 질문 (6)
 이전글 배열들을 다른 파일에서 사용하기. (4)

댓글

변종원(웅파) / 2013/01/11 18:21:45 / 추천 0
 sql문으로 작성하셔야 합니다. ^^
where 부분만 sql문으로 작성해서 쓰시면 됩니다.
템포 / 2013/01/11 18:26:36 / 추천 0
웅파님 답변 감사합니다
like절이 or조건절인데 like절을 따로 sql문 쓰는게 아니라
where 조건절을 따로 쓰는건가요 ?
한대승(불의회상) / 2013/01/11 18:57:29 / 추천 0
템포// $this->db->where() 를 사용하라는 뜻입니다.

$this->db->where("컬럼 LIKE '%test%' escape '!' OR 컬럼2 LIKE '%te%' escape '!' ", NULL, FALSE);
로 사용하시면 됩니다.
니삼 / 2013/01/11 19:46:40 / 추천 0
 직접 sql문을 쓰시니까 sql injection같은 공격에도 충분히 대비하시길~
템포 / 2013/01/14 08:59:51 / 추천 0
답변 감사들합니다~
아 그런뜻이었군요..
저는 $q = $this->db->last_query 해서
where절을 "sql문..."으로 작성했었네요 ;;

불의회상님 덕분에 코드를 줄이게 됐네요 감사합니다ㅎ