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

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


  1. CUBRID 사용자를 위한 DBeaver 도구 출시 안내

    Date2024.04.23 Byadmin Views118
    read more
  2. SQLGate for CUBRID 영구 무료 라이선스 제공

    Date2020.04.09 Byadmin Views4474
    read more
  3. 데이터 복구시 질문사항입니다.

    Date2011.04.21 By........ Views13059
    Read More
  4. DB Error, Unload / Load 실패남

    Date2011.04.16 By한종희 Views13434
    Read More
  5. 큐브리드 페이징 관련 문의

    Date2011.04.15 By마산이프로 Views14291
    Read More
  6. 큐브리드 사용시 궁금한점이 있습니다.

    Date2011.04.14 By종이 Views11582
    Read More
  7. Microsoft Visual C++ 2008 재배포 가능 패키지 설치 안하고 Trayicon 보이게 하는 방법

    Date2011.04.11 By혀니짱 Views15795
    Read More
  8. windows xp 에서 큐브리드 설치시 오류

    Date2011.04.09 By혀니짱 Views12188
    Read More
  9. 데이터가 존재하는 테이블 내 필드의 데이터 타입 변경이 가능한가요?

    Date2011.04.09 By차오이 Views14727
    Read More
  10. DBCP 관련 문제 때문에 질문 드립니다.

    Date2011.04.04 By피아오 Views10049
    Read More
  11. PHP에서 CUBRID 모듈이 로드 되지 않습니다.

    Date2011.04.03 By유리심장 Views15464
    Read More
  12. SELECT 시, 필드 값의 대소문자 구분 없이 조건 검색 가능할까요?

    Date2011.04.02 By차오이 Views16381
    Read More
  13. VC 2005 에 가장 적합한 api 가 어떤것인가요?

    Date2011.04.02 By엥꼬 Views10135
    Read More
  14. DBCP+OID관련 답변감사합니다.

    Date2011.03.31 By안지민 Views10022
    Read More
  15. Nginx-PHP-Cubrid 연동시 Cubrid 확장 모듈 로딩 불가 문의 입니다.

    Date2011.03.30 Byreerror Views12745
    Read More
  16. OODB특성을 사용하기 위해 DBCP를 포기하는게 적당할까요?

    Date2011.03.30 By안지민 Views9614
    Read More
  17. DBCP + OID사용하기

    Date2011.03.29 By안지민 Views9908
    Read More
  18. Windows 7 64bit에서 ODBC Driver가 등록되지 않습니다.

    Date2011.03.29 By일수니 Views24300
    Read More
  19. MS949를 UTF-8 변경 방법

    Date2011.03.25 By혀니짱 Views19850
    Read More
  20. 오류(연결을 얻을수 없습니다.)

    Date2011.03.25 By맑고푸른하늘 Views12002
    Read More
  21. [해결됨] 3.0 -> 3.1 이전중에 문제가 발생해서 현재 업무 마비상태 입니다.

    Date2011.03.25 Byreerror Views10530
    Read More
  22. CUBRID Manager 에서 기본설정 -> 질의 편집기 옵션 -> UTF8로 변경방법 알려주세요!

    Date2011.03.24 By혀니짱 Views10011
    Read More
Board Pagination Prev 1 ... 148 149 150 151 152 153 154 155 156 157 ... 200 Next
/ 200

Contact Cubrid

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