| 제목 | mysql select 질문이요.. ㅠㅠ (고수님들! help) | ||
|---|---|---|---|
| 글쓴이 | 닉 | 작성시각 | 2013/11/27 17:57:09 | 
| 
                         | 
                |||
| 
                        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
                             
                             | 
                    
| 
                             
                                닉
                                /
                                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기능을 만드는데 그 구조를 잘 써먹으면 좋을듯 싶은데요..  | 
                    
MySQL에서도 정규식을 사용할 수 있으니 부득이한 경우 정규식을 이용하는것도
방법일듯 싶은데...