Background Image

FORUM

?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

안녕하세요~

 

MySQL에서 큐브리드 포팅하면서 궁금즘이 생겨서 질문드립니다.

 

SELECT 시, 필드 값의 대/소문자 구분 없이 검색하는 방법으로 아래와 같은 쿼리가 적당할까요?

 

예시 테이블 생성 및 샘플 데이터)

 

CREATE TABLE "entries"(
"uid" integer AUTO_INCREMENT,
"entry" VARCHAR(255) NOT NULL,
"meaning" VARCHAR(255) NOT NULL,
PRIMARY KEY("uid")
);
 

INSERT INTO "entries" ("entry", "meaning") values ('japan', '옻칠');

INSERT INTO "entries" ("entry", "meaning") values ('Japan', '일본');

 

질의1)

select * from "entries" where "entry" = 'japan';

 

/*

질의1의 결과) 아래 1건만 검색 됨

 japan, 옻칠

*/

 

질의2) 대소문자 관계 없이 검색하기 위해 사용해 본 쿼리

select * from "entries" where lcase("entry") = lcase('japan');

 

 

질의2와 같이 필드 값과 입력 값을 모두 소문자로 맞춰 검색하면 2개의 japan 레코드가 나옵니다만...

 

이것이 성능상으로 문제가 있지 않을까 싶어서, 문의드립니다.

 

성능 저하가 우려가 있다면, 혹시 다른 방법이 있을까요?

 

  • ?
    남재우 2011.04.02 04:05

    안녕하세요.

    현재 CUBRID는 대소문자를 구분하고 있으므로 일반적인 방법으로는 어렵습니다.

    말씀하신 방법으로 가능하나, 문제는 lcase(entry) 와 같이 필드에 함수를 사용시 인덱스사용이 되지 않아 성능이 떨어질 가능성이 높아진다는 것이 문제입니다.

    아마도 아시겠지만 할 수 있는 방법은 2가지가 있습니다.

    1. 입력시 강제 소문자로 변환하여 소문자로 저장시킵니다. 그런후 비교시 where entry = lcase(비교값) 형태로 할 수 있습니다. 단점은 결과가 소문자로 나온다는 것입니다.

    2. 필드를 하나 추가합니다. entry 에는 원래값을 넣고 entry_lcase 에는 소문자로 값을 입력합니다. 그런후 비교는 where entry_lcase = lcase(비교값) 의 형태로 질의하고 select 절에서는 entry 값을 봅니다. 단점은 필드가 하나 늘어남에 따라 응용에서 질의 사용에 신경써야 하고 역시 데이터량의 증가로 이어질 수 있습니다.

    현재로써는 이정도 방법이 좋을 것 같습니다.

  • ?
    차오이 2011.04.02 04:46

    일단.. 검색용 필드를 따로 추가해 활용하는 것이 좋겠네요.. 힌트 감사합니다 ^^


List of Articles
번호 제목 글쓴이 날짜 조회 수
공지 SQLGate for CUBRID 영구 무료 라이선스 제공 file admin 2020.04.09 1718
960 데이터 복구시 질문사항입니다. 1 ........ 2011.04.21 13047
959 DB Error, Unload / Load 실패남 1 file 한종희 2011.04.16 13386
958 큐브리드 페이징 관련 문의 1 마산이프로 2011.04.15 14169
957 큐브리드 사용시 궁금한점이 있습니다. 11 종이 2011.04.14 11542
956 Microsoft Visual C++ 2008 재배포 가능 패키지 설치 안하고 Trayicon 보이게 하는 방법 1 혀니짱 2011.04.11 15706
955 windows xp 에서 큐브리드 설치시 오류 3 혀니짱 2011.04.09 12163
954 데이터가 존재하는 테이블 내 필드의 데이터 타입 변경이 가능한가요? 2 차오이 2011.04.09 14600
953 DBCP 관련 문제 때문에 질문 드립니다. 1 피아오 2011.04.04 9977
952 PHP에서 CUBRID 모듈이 로드 되지 않습니다. 3 유리심장 2011.04.03 15298
» SELECT 시, 필드 값의 대소문자 구분 없이 조건 검색 가능할까요? 2 차오이 2011.04.02 16092
950 VC 2005 에 가장 적합한 api 가 어떤것인가요? 1 엥꼬 2011.04.02 10121
949 DBCP+OID관련 답변감사합니다. 2 안지민 2011.03.31 9995
948 Nginx-PHP-Cubrid 연동시 Cubrid 확장 모듈 로딩 불가 문의 입니다. 2 reerror 2011.03.30 12704
947 OODB특성을 사용하기 위해 DBCP를 포기하는게 적당할까요? 2 안지민 2011.03.30 9566
946 DBCP + OID사용하기 1 안지민 2011.03.29 9869
945 Windows 7 64bit에서 ODBC Driver가 등록되지 않습니다. 2 일수니 2011.03.29 24084
944 MS949를 UTF-8 변경 방법 1 혀니짱 2011.03.25 19766
943 오류(연결을 얻을수 없습니다.) 1 맑고푸른하늘 2011.03.25 11984
942 [해결됨] 3.0 -> 3.1 이전중에 문제가 발생해서 현재 업무 마비상태 입니다. 11 file reerror 2011.03.25 10520
941 CUBRID Manager 에서 기본설정 -> 질의 편집기 옵션 -> UTF8로 변경방법 알려주세요! 3 혀니짱 2011.03.24 9994
Board Pagination Prev 1 ... 126 127 128 129 130 131 132 133 134 135 ... 178 Next
/ 178

Contact Cubrid

대표전화 070-4077-2110 / 기술문의 070-4077-2147 / 영업문의 070-4077-2112 / Email. contact_at_cubrid.com
Contact Sales