검색창에 쉼표(,) 를 기준으로 구분해서 문자열을 찾아야 하는데요
예를 들어 검색창에 "사이다, 콜라, 페리얼 " 이렇게 검색했을 때
일반적으로 searchColumn Like '%사이다%' or searchColumn Like '%콜라%' Or searchColumn Like '%페리얼%'
이런식으로 찾을 수가 있늗데요..
문제는 저렇게 Like문으로 줄줄이 가져다 쓰면 성능?? 에 안좋은 영향을 끼친다는 얘기를 들어서요
더욱더 문제는 일반 제목뿐만 아니라 내용에서도 저러한 검색을 동시에 또 해야 한다는 거죠 ㅠㅠ
mySQL은 정규식으로 (잘모릅니다.. 그냥 이런식일 꺼 같다고 예를 든겁니다.) RegExp ([사이다|콜라|페리얼], searchColumn)
뭐 이런식으로 찾는다는 거 같은데요 MSSQL에서는 이러한 구문처리 방식이 없는지요?
Comment 1
-
쓸만한게없네(윤선식)
2013.03.05 01:18
하나의 컬럼에 여러 값을 사용한다면..
아마 어떻게 해도 속도향상을 기대하긴 힘들 것입니다.
http://www.sqler.com/264055
위처럼 정규식을 사용할 수 있다고 해도, 저러한 형태는 정규식에도 해당되지 않습니다.
하여...
검색엔진을 사용하시거나.
구조를 변경하시는 것이 좋을 듯 합니다.
검색하려는 원본 테이블에 행 형태로 검색할 조건이 있다면
SEQ / NAME
1 / 사이다
2 / 콜라
3 / 페리얼
프로그램에서 받은 "," 를 행으로 나눠서 IN 조건으로 빼서 검색에 활용하시는 편이 훨씬 더 낫겠네요.
NAME IN ('사이다','콜라','페리얼')
만약, 그마저도 앞자리를 알 수 없는 형태로 검색해야 한다면, 검색엔진을 쓰시라는 말씀밖에...