2013-10-16 2 views
1

우리는한 단어 유연성

우리가 잘 작동 다음 SQL 쿼리

SELECT * 
FROM jreviews_content 
WHERE jr_produits REGEXP '[[:<:]]ryan[[:>:]]' 

하여 정확한 단어 검색을 구현 ​​한 검색 응용 프로그램을 구현하는 지금 우리는 그것을 조정할 싶습니다 little 우리는 사용자에게 앞뒤에 단일 단어 유연성을 부여하여 사용자 유형이 ryans 또는 ryan 또는 sryan이면 시스템이 위의 구현 된 정확한 단어 검색을 maintaing하는 결과를 제공해야합니다.

+0

있는'1234ryan'와 '라이언 ... erwer' 유효한 문자열 또는 단어 앞뒤에만 1 문자? –

+0

앞뒤에 하나의 글자 만 사용 가능 –

답변

0
set @word='sryan'; 
SELECT * 
FROM (select 'ryan' as a)a 
WHERE a like @word 
or a like right(@word,length(@word)-1) 
or a like left(@word,length(@word)-1) 

-> '라이언'

set @word='ryan'; 
SELECT * 
FROM (select 'ryan' as a union all select 'bryan' union all select 'yan' union all select 'yankee')a 
WHERE a like @word 
or a like right(@word,length(@word)-1) 
or a like left(@word,length(@word)-1) 

-> '라이언', '연의'

set @word='ryan'; 
    SELECT * 
    FROM (select 'ryan' as a union all select 'bryan' union all select 'yan' union all select 'yankee')a 
where 
a REGEXP concat('[[:<:]]',@word,'[[:>:]]') 
or 
a REGEXP concat('[[:<:]]',left(@word,length(@word)-1),'[[:>:]]') 
or 
a REGEXP concat('[[:<:]]',right(@word,length(@word)-1),'[[:>:]]') 
+0

위의 검색어로 작성된 정규 표현식으로 수정하면 –

+0

정규식을 추가 할 수 없습니다. – AdrianBR