2011-12-30 4 views
2

SQL 서버 2008 r2 에디션과 프런트 엔드로 .Net 웹 페이지가 있습니다.쉼표로 구분 된 값으로 열을 검색합니다.

문제가 발생하면 기본적으로 쉼표로 구분 된 다양한 기술 집합으로 구성된 열이 데이터베이스에 있습니다. 예를 들어 어떤 후보자는 C#, SQL server, Oracle의 3 가지 스킬 세트를 가지고 있습니다. C#Oracle의 기술을 가진 후보자를 나열하려는 사용자는 입력을 웹 페이지의 텍스트 상자에 C#, Oracle으로 제공합니다. 그 같은 것을 나열 할 수있는 쿼리를 작성하고 싶습니다. 나는 프리 텍스트 검색을 시도했다. 그러나 캐피털/작은 단어, 와일드 카드 문자에 대한 지원, 기술의 순서조차도 가져 오지 못합니다. 다음은

올바른 (및 반갑지 않은) 대답은 테이블 구조를 재 설계하는 것입니다 내 POV에서 샘플 쿼리

Select * from profiles where freetext(skills, ‘C#,Oracle’) 

답변

11

입니다 : 당신이 원한다면 당신은 지금, 하나의 필드에 값 목록을해서는 안 개별적으로 액세스하십시오.

+0

@JonEgerton 다음 SO 사회의 한 대표는 취할주세요 내 (모국어가 아닌) 영어 e를 고치려는 모든 사람들을위한 고마움. rrors. 많이 감사하고 가장 일반적인 실수를 배웁니다 –

+0

문제 없습니다 - 영어가 제 기본적인 독일어보다 훨씬 낫습니다! –

0

DISCLAIMER : @EugenRieck (그 대답 +1)에 동의합니다. 한 필드에서 CSV 문자열을 채우는 것은 나쁜 디자인입니다.

하지만해야한다면 ... look here first. 또는 try a CLR solution.

0

this은 전체 텍스트에 대해 좋은 내용입니다.

일치 C# 및 오라클

select * From Profiles where contains(*,'"Oracle" and "C#"') 

일치 C 번호 중 하나 또는 오라클은

select * From Profiles where contains(*,'"Oracle" or "C#"') 

Full-text: and/or