개발 Q&A

제목 mysql select 질문이요.. ㅠㅠ (고수님들! help)
글쓴이 작성시각 2013/11/27 17:57:09
댓글 : 9 추천 : 0 스크랩 : 0 조회수 : 14118   RSS
pd_kw_nos라는 컬럼의 데이터를

10|11|1 식으로 저장을 했습니다.

데이터는 
10
10|11
10|12|13
1|2|10

이런식으로 들어가 있는데..

` | `를 구분으로 양 옆의 데이터가 전부 키워드테이블의 프라이머리키입니다.

이 때, 1의 데이터를 like 구문으로 select 하게 되면

10
10|11
10|12|13
1|2|10

가 나오잖아요 .. 

이때 다른 구문을 써서 값만  1|2|10 select 할 수 있는 방법이 있을까요? 


 다음글 ERR_EMPTY_RESPONSE 에러에 대해 (1)
 이전글 echo json_encode("a"... (4)

댓글

헛발이 / 2013/11/27 18:02:43 / 추천 0
질문의 의도를 정확히 파악하긴 힘들지만...

MySQL에서도 정규식을 사용할 수 있으니 부득이한 경우 정규식을 이용하는것도
방법일듯 싶은데...
/ 2013/11/27 18:08:40 / 추천 0
헛발이 //
상품테이블과 상품키워드 테이블이 있습니다.

상품 테이블에 키워드를 저장하는데 저장할때 위와 같이 1|10 이런식으로 저장을 합니다. 이때 1, 10은 각 각 키워드의 프라이머리키로 1이 배추 10이 양상추등 이런식으로 저장하고

검색시 배추를 검색하면 1의 데이터만 불러와야 하는데 값을 1|10 이런식으로 저장해서 like구문으로 select 해올 수 없어서 질문을 올렸습니다.
mysql 정규식을 검색해 볼게요 감사합니다 ^^

/ 2013/11/27 18:28:05 / 추천 0
제 실력으로는 정규식으로 풀기가 어려울거 같아요
 pd_kw_nos라는 컬럼의 데이터가
10|11
11
10
10
10
11
10|11|12
이렇게 들어가 있습니다.

이때 검색을 1로 검색을 했을때
위 데이터가 하나도 안나오고

10으로 검색하면
10|11
10
10
10
10|11|12
이런 데이터가 나오게 select 하고 싶어요..
나중에 데이터가 100이란 데이터가 들어갈 수 있는데 
10을 검색 시 100을 포함한 데이터가 나오면 안되서 그래요 ㅠㅠ
100이란 데이터는 100으로만 검색이 되야 하고
|를 기준으로 양 옆의 데이터가 전부 데이터에요 ㅠㅠ 도와주세요//
 
/ 2013/11/27 18:40:51 / 추천 0
 데이터를 |로 explode 해서 select 할 순 없나요 ? 
예를 들면 1을 검색하면 1|10은 검색되고 10|11은 검색 안되게 ... ㅠㅠ
한대승(불의회상) / 2013/11/27 18:54:04 / 추천 0
1로 검색할때
 like '1|%'

10로 검색할때
like '10|%'

하면 되지 않나요?


변종원(웅파) / 2013/11/27 18:54:46 / 추천 0
처음부터 잘못(?) 된건데요? 구조를 잘못 만들었습니다.

상품테이블, 상품-키워드 매칭테이블, 키워드테이블
1                    1-1                                          1
                       1-2                                          2

이런 구조가 되어야 검색이 용이합니다.

explode는 php단이죠.
/ 2013/11/27 21:33:54 / 추천 0
 쌓인 데이터가 많지 않다면 테이블 정규화를 새로 하시는 것이 훨씬 더 나을 것 같고

굳이 지금 상황을 꼭 유지해야 한다면

where ~~~ and ( key like '$keyword|%' or key like '%|$keyword|%' or key like '%|$keyword')

로 구해올 수는 있겠네요....


아니면 데이터를 조금만 가공해서 저장된 데이터의 처음과 끝에도 | 를 넣어주신 이후에

key like '%|$keyword|%' 

만 쓰셔서 구해올 수도 있겠구요



근데 도저히 추천하고 싶지 않은 방법입니다.. 
/ 2013/11/28 09:18:10 / 추천 0
헛발이, 불의회상, 웅파, 키 //
답변 감사합니다. 많은 도움 되었습니다.
매칭 테이블.. 해법이군요 ^^
예전에 저런구조 보면서 왜 저렇게 만들었지 생각했는데 검색하려고 한거군요 ^^
헛발이 / 2013/11/28 09:58:53 / 추천 0
미천한 생각으로는

게시판만들때  TAG기능을 만드는데 그 구조를 잘 써먹으면 좋을듯 싶은데요..