2010-07-19 4 views
1

Like 키워드 또는 다른 기술을 사용하여 DB에서 필드를 비교하고 필드를 선택하고 싶습니다.SQL (Like, Contain)에서 기술 검색

SELECT * FROM Test WHERE name LIKE '%xxxxxx_Ramakrishnan_zzzzz%'; 

하지만 내 필드는 '라마 크리슈'

내 입력 문자열이 몇 가지 추가 문자가 나는이에 대한 SQL 쿼리를 원하는

을 xxxxxx_Ramakrishnan_zzzzz 포함 포함 :

내 쿼리는 다음과 같다. 어느 누구도 나를 도울 수 있습니까?

답변

2

다른 방향으로 돌리시겠습니까? 이렇게?

Select * from Test where 'xxxxxx_Ramakrishnan_zzzzz' LIKE '%' + name + '%'; 
+0

내 필드 "FormTypes"중 하나가 'Form1', 'Form2', 'Form3'등과 같은 값을 포함합니다. 나는이 'xxxhhuuForm1yyuusss'같은 입력 문자열을 얻을 .Form1은 입력 문자열 안에, 내가 입력 문자열 에서이 FormType을 식별하고 같은 키워드를 사용하여 비교 싶어, 거기에 어떤 옵션이 목적을 위해 SQL에서 사용할 수 있습니까? – Ramakrishnan

+0

제발 도와주세요, 고마워요. – Ramakrishnan

+0

@Ramakrishnan :이 접근 방식이 나에게 잘 어울립니다. 시도해보십시오 :) – onedaywhen

0

당신은 정확하게처럼) (LOCATE, MySQL의 기능을 사용할 수 있습니다,

SELECT * FROM WHERE LOCATE("Ramakrishnan",input) > 0 
+0

OP는 SQL Server에 있습니다. –

0

는 XXXXXX 항상 ZZZZZ 비트 6 및 5 자인가? 그렇다면, 이것은 문자열 절단의 비트와 함께 할 수 있습니다. 에서

with Test (id,name) as (
select 1, 'Ramakrishnan' 
union 
select 2, 'Coxy' 
union 
select 3, 'xxxxxx_Ramakrishnan_zzzzz' 
) 

Select * from Test where name like '%'+SUBSTRING('xxxxxx_Ramakrishnan_zzzzz', 8, CHARINDEX('_',SUBSTRING('xxxxxx_Ramakrishnan_zzzzz',8,100))-1)+'%' 

결과 :

가 가변 길이 인 경우
id name 
1 Ramakrishnan 
3 xxxxxx_Ramakrishnan_zzzzz 

, 다음은 문자열의 끔찍한 건설 될 것입니다, CHARINDEX는, REVERSE 및 LEN 기능을 제공합니다.