Background Image

FORUM

?

단축키

Prev이전 문서

Next다음 문서

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

no

char1

char2

char3

char4

1

a

b

c

d

2

b

a

c

d

3

a

c

d

e

원하는 결과

현재 알려주신 쿼리문으로 잘 됬었는데요, 조금 꼬여서 질문드립니다...

상황 설명 드리겠습니다.

지금 현재 제가 GET으로 받을수 있는 단어가 한개 있습니다. 이것을 $_GET['id'] 라고 하겠습니다.

 

$_GET['id']는 char1에도 있을 수 있고, char2에도 있을수 있습니다.

char1에 있던, char2에 있던 둘 중에 하나라도 $_GET['id]를 포함하고 있다면 값을 가져오고 싶습니다.

물론 중복을 제거한다는 조건에서요.

여러 방법으로 짱구 굴리고 해봤는데... 도무지 원하는 결과가 나오질 않습니다...

현재 쿼리문

SELECT * FROM abcd WHERE (char1='a') GROUP BY a;

 

 

a로 검색했을 때, char1과 char2를 동시에 검색해서 char1 char2가 가지고있는 값이 중복되지 않을 경우

char1 a char2 b와 char1 c char2 a는  중복되지 않으나, char1 a char2 b char1 b char2 a는 중복으로 간주.

이런 조건들을 만족할 수 있는 쿼리문을 어떻게 만들수 있을까요...

 

쿼리 결과

no

char1

char2

char3

char4

1

a

b

c

d

2

c

a

c

d

이렇게 나오는 것을 원하고 있습니다..

어떻게 쿼리를 날려야 되는지 조언좀 부탁드립니다...

  • ?
    차오이 2012.08.27 18:44
    

    두개의 컬럼을 일종의 키로 삼아서 검색하고자 하시는 것 같은데요,

    하지만 두개의 컬럼의 순서에 상관 없이 char1 + char2 또는 char2 + char1 의 결과는 같은 데이터로 보길 원하시는 것 같고요.. '

     

    그렇다면 아래와 같은 쿼리를 작성해 볼 수 있을 듯합니다.

     

     

    SELECT
        "no",
        char1,
        char2,
        char3,
        char4,
        IF(
           ASCII(SUBSTR(char1, 1, 1)) < ASCII(SUBSTR(char2, 1, 1)), SUBSTR(char1, 1, 1) || SUBSTR(char2, 1, 1), SUBSTR(char2, 1, 1) || SUBSTR(char1, 1, 1)) AS compareStr
    FROM
        CHARS
    WHERE
        LCASE(CHAR1) LIKE '%' || LCASE('a') || '%'
        OR
        LCASE(CHAR2) LIKE '%' || LCASE('a') || '%'
    GROUP BY compareStr;

     

     

     

    상기 쿼리에 대해 첨언을 하자면...

     

    1. 검색 기준이 되는 char1 과 char2 모두에서 검색되어야 하기에 where 조건 절에서 or 조건으로 두 컬럼을 LIKE 검색하였고,

        큐브리드는 영어 대소문자를 구분하므로 검색 시 A 내지 a 를 동일하게 보기 위해 LCASE 함수를 사용하여 소문자로 치환하였습니다.

     

    2. char1 + char2 또는 char2 + char1 의 순서에 상관 없이 문자열이 같다면(ab 또는 ba는 같다고 봐야 한다면) 같은 것으로 간주해야

        한다고 하였기에... group by 대상이 되는 컬럼의 값이 서로 같도록 맞춰주도록 상기 적색 부분과 같이 처리했습니다.

     

        문자열의 첫번째 값을 아스키 값으로 비교하여 작은 데이터를 앞으로 보내 데이터를 동일하게 맞춰주는 작업입니다.

     

    3. 2번 과정에서 만들어낸 문자열로 group by 하여 결과를 얻어 냅니다.

     

     

     

    그런데, 이렇게 구하게 되면... char1, char2가 같더라도 char3, char4의 값이 다를 경우 데이터 누락이 발생할 수 있습니다.

     

     

    논리적으로 모순 없을지 잘 생각해보셔야 할 것 같아요...

     

     

       

  • ?
    광황제 2012.09.02 02:23

    정말 매우 감사합니다!.

     

    말씀해주신 방법을 참조하여 정상적으로 쿼리문을 수정! 완료하였습니다.

     

    정말 속시원히 해결해주셔서 너무나 감사합니다.

     

    처음엔 union으로도 해보고 별짓 다했었는데요!!

     

    좋은 방법으로 깔끔히 해결했습니다 정말 감사합니다!


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

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

    Date2020.04.09 Byadmin Views4471
    read more
  3. 큐브리드 시작시 local host 연결이 안됩니다 ㅠㅠ

    Date2012.10.07 Bythiago Views8434
    Read More
  4. CentOS 레포지토리 제공 좀 해주시면 좋겠습니다.

    Date2012.10.02 Byviper9 Views7185
    Read More
  5. 쿼리좀 도와주세요

    Date2012.09.27 By박수 Views6366
    Read More
  6. 언로드 후, 로드 시 데이터 정렬 순서가 역방향으로 바뀌는 것 관련해서...

    Date2012.09.24 By차오이 Views7124
    Read More
  7. 컴퓨터 메모리 증가 현상 문의드립니다

    Date2012.09.23 By파파후드 Views10834
    Read More
  8. 로그인 에러 문의 드립니다.

    Date2012.09.21 By낭군 Views7785
    Read More
  9. cubrid log message 관련 질문입니다.

    Date2012.09.17 By깽즈야 Views5850
    Read More
  10. 볼륨 자동 추가 기능이 작동하지 않는 것 같습니다.

    Date2012.09.14 Bynimbus89 Views5701
    Read More
  11. 큐브리드의 이전 버전 다운로드에 대해서

    Date2012.09.13 ByDiaBlue Views5555
    Read More
  12. 테이블 크기제한은 어떻게 해제하나요?

    Date2012.09.10 By로닥 Views5576
    Read More
  13. cubrid 복구 관련 문의

    Date2012.09.07 By깽즈야 Views7812
    Read More
  14. 큐브리드 매니저 질의 실행계획 표시 오류??

    Date2012.09.07 By종이 Views5486
    Read More
  15. master process에 대해서

    Date2012.09.06 By깽즈야 Views5783
    Read More
  16. 혹시 큐브리드매니저 자동완성 끄는 기능 있나요

    Date2012.09.05 By안지민 Views6038
    Read More
  17. CCI API가 Thread Safe 한가요?

    Date2012.09.04 Bynimbus89 Views7284
    Read More
  18. CCI API로 구현시 DB를 원격에서 접속할 때 발생하는 문제

    Date2012.09.01 Bynimbus89 Views5989
    Read More
  19. 명령창(커멘드 라인)으로 DB 생성시 볼륨 자동 추가 설정 방법 문의

    Date2012.09.01 Bynimbus89 Views6784
    Read More
  20. 표준프레임워크의 공통컴포넌트에 게시판설치관련

    Date2012.08.31 By큐브리 Views22768
    Read More
  21. cubrid ha 백업 문의

    Date2012.08.30 By깽즈야 Views5959
    Read More
  22. cubrid manager 접속 오류와 관련하여

    Date2012.08.30 Bybizsp Views5766
    Read More
Board Pagination Prev 1 ... 132 133 134 135 136 137 138 139 140 141 ... 200 Next
/ 200

Contact Cubrid

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