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. No Image notice by admin 2024/04/23 by admin
    Views 51 

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

  2. SQLGate for CUBRID 영구 무료 라이선스 제공

  3. UTF-8 한글이 깨집니다.

  4. 큐브리드 쿼리 처리 속도에 대한..

  5. Clob Insert 시 Java heap space 에러 문의드립니다.

  6. 페도라 10에서 큐브리드 rpm 설치시 오류

  7. SELECT 시, 필드 값의 대소문자 구분 없이 조건 검색 가능할까요?

  8. 저장 프로시저 작성법

  9. java PreparedStatement 변수 바인딩 시 에러

  10. Java VM is not running....문제입니다

  11. jsp 연결~~

  12. OLEDB insert관련 질문입니다.

  13. mysql에서 limit와 같은 기능이 있나요?

  14. No Image 04Jun
    by 천타에 허리한번 펴자 ㅡㅡ;
    2009/06/04 by 천타에 허리한번 펴자 ㅡㅡ;
    Views 16332  Replies 2

    이클립스 DBViewer에서 1분정도 지나면 컨넥션이 끊어집니다.

  15. double 표시형식 문의

  16. [문의]임베디드 SQL 개발시 참고해야 할 기술문서가 어디있는지요?

  17. cubrid broker fail문제

  18. Cannot communicate with the broker 오류

  19. Cubrid iBatis Cursor 예제좀 부탁드립니다.

  20. 오라클에서 큐브리드 데이터 이관

  21. cubridmigration toolkit 이용시

  22. mysql 데이트 컬럼 자르기 문의

Board Pagination Prev 1 ... 10 11 12 13 14 15 16 17 18 19 ... 200 Next
/ 200

Contact Cubrid

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