개발 Q&A

제목 mysql에서 특정단어 검색질문
카테고리 DB
글쓴이 헛발이 작성시각 2017/04/25 14:26:35
댓글 : 7 추천 : 0 스크랩 : 0 조회수 : 11343   RSS

올만에 질문 합니다.. 잘 부탁드립니다...

 

AAA 테이블에 B라는 레코드가 text타입으로 데이터가 "1,2,3,4,5,6,7,8,9,10,11,12,13,14....." 라고 있다고 가정하고

 

AAA테이블

No.  B

1   |   9,10,11,12 (<=B데이터가 하나의 필드에 문자로 되어 있음)

2   |   1,2,3

3   |   5,6,7

 

위의 데이터에서 1을 검색하려 합니다.

그러면 보통 LIKE를 사용한다고 생각한다면 ...

 

LIKE = '1' 이라고 하면 1만 검색이 되는것이 아니고 10이나 11도 같이 검색이 되는데... 

정확하게 1이라는 문자가 있는것을 찾는것이 가능할까요?

 다음글 select 를 여러번 하는게 나을까요 php 루프를 ... (7)
 이전글 외부서버가 죽었는지 살았는지 확인 할수 있는 방법이나 ... (5)

댓글

한대승(불의회상) / 2017/04/25 14:59:44 / 추천 0
'1,%'  or '%,1,%' or '%,1' 로 검색하면 될듯
헛발이 / 2017/04/25 15:09:51 / 추천 0
감사합니다...
/ 2017/04/25 16:41:24 / 추천 0

위 같이 할경우엔 데이터가 1만 있을때는 검색이 안될거 같아요..

or '1'도 추가해야 할거같아요..

테러보이 / 2017/04/25 18:58:04 / 추천 0
꼭 like를 써야 하는것이 아니라면 find_in_set으로 검색할면될것 같습니다.

참고로 테스트 결과 like보다 find_in_set가 느리더라구요. 남용하지 않을 정도로만 쓰면 좋을 것 같습니다 ㅎㅎ
테러보이 / 2017/04/25 19:01:42 / 추천 0
select * from `AAA` where find_in_set('1', `b`) > 0
헛발이 / 2017/04/25 22:38:15 / 추천 0

답변 감사합니다... 하지만 참 검색이라는것이 어렵네요...왜 갑자기 어렵다 생각이 드는건지....

암튼 참고 하겠습니다...

kaido / 2017/04/26 09:03:39 / 추천 0

저도 갑자기 흥미가 생겨서 , 기준으로 나눠서 해당 필드 검색 하는 로직 찾아보니...

안하는게 낫겠더군요 킁...

정확한 검색을 요구하는 경우가 아니면, "유사 검색도 나와서 더 좋지 않습니까?" 하는 혀로그래밍도 필요합니다 ㅎㅎ