php 날코딩으로 검색 기능을 만드는데,
문자열 검색을 해야한다.
예로, 사용자명, 사용자 번호, 두개를 같이 검색해야되고,
인덱스도 없어서.... like 검색을 하려니 너무 느려질거 같다.
그 경우, DB에서 like 검색보다는 INSTR 를 사용하는걸 추천한다.
조건절에,
SELECT * FROM USER
WHERE INSTR(UPPER(REPLACE(USER_NM, ' ', '')), UPPER(REPLACE('검색어',' ', ''))) > 0
INSTR 은 문자열이 포함되었는지 확인하는거고,
UPPER. 소문자로 입력된것도 다 대분자로 치환한다.
REPLACE 그리고, 혹시 스페이스가 들어가 있을수있으니, 스페이스를 없애는 작업이다.
>0 은 값이 1개라도 있으면, 리턴되는거다.
위 쿼리문에 AND 붙여서 조건식 추가하면 된다.
어자피 검색해서, 포함된 문자열 검색해서 목록을 내려주면 된다.
INSTR이 like 보다, 훨씬 빠르고, 간편하다.
'컴퓨터 > Oracle' 카테고리의 다른 글
오라클 로더사용시 null값 넣기(null 에러) (0) | 2021.12.02 |
---|---|
로더로 대용량 데이터 DB에 넣기 (0) | 2021.11.01 |
ORA-21561 : OID generation failed 오라클 에러 (0) | 2021.07.20 |
오라클 시간차이 계산하기 (0) | 2019.10.31 |
오라클 데이터값 오늘 날짜 검색 (0) | 2018.04.27 |