2016-06-10 3 views
1

문제가 있습니다. 제품의 하위 범주를 기반으로 제품 제안 기능을 만들고 있습니다. 내가가장 일치하는 MySQL 검색 알고리즘

사례 1과 같은 하위 범주가 있다고 가정 (난이 개 단어가있는 경우)

  1. TV가 1 개 제품
  2. 삼성 TV가 1 개 제품
  3. 을 가지고
  4. 삼성 냉장고 1 제품
  5. 삼성이있다 냉장고에는 1 개의 제품이 있습니다

내가 무엇을 원하는지 입력하십시오 삼성 TV 그렇다면 TV 또는 Samsung TV의 제품을 원하지만 Samsung refrigerator 또는 Samsung fridge이 아닌 제품을 원합니다. 내가 시도하는 것은

select * from tabel name where title like "%Samsung TV%" or title like "%Samsung" or title like "%TV" 

경우 1 문제

그것은 또한 제품을 선택

삼성 냉장고삼성 냉장고

사례 2 (단어보다 2보다 때부터)

    (210)
  1. 삼성 세탁기 (1 개) 제품
  2. 을 가지고
  3. 타타 세탁기가 1 개 제품
  4. 삼성 세척 장치가 한 제품
  5. 세탁기가 1 제품
  6. 내가 삼성 세척을 입력하면

내가 원하는 것은 기계. 내가 쓴 쿼리

select * from tabel name where title like "%Samsung washing machine%" or title like "%Samsung washing%" or title like "%washing machine%" 

경우 아무런 문제가 있지만 더 나은 솔루션이 인정되지 않습니다 지금까지이 문제

입니다. enter image description here 거대한 미리 감사드립니다.

+0

정규 표현식의 매혹적인 세계를 살펴 보자 도움이 될 것입니다 – Strawberry

+1

전체 텍스트 색인을보십시오 – Yann39

+0

전체 텍스트 색인은 일치하는 항목을 모두 선택합니다. @ Yann39 – MKD

답변

0

당신은 이런 식으로 뭔가를 시도 할 수 있습니다 : -

select * from department where Name like "%Samsung" or (Name like "%Tv%" and Name like "%Samsung%") UNION select from department where Name like "%tv" or (Name like "%Samsung%" and Name like "%TV%") 

희망이

+2

고마워. 그 일. – MKD

0

더 나은 그냥 사용하고

select * from tabel name where title like "%TV" or (title like "%Samsung%" and title like "%TV%") 
+0

하지만 'bikes sports'를 추가하면이 검색어에 따라'shoes sports '또는'items sports '등의 모든 스포츠 항목이 선택됩니다. – MKD

+0

쿼리가 select *이면 tabel name에서 * where title ("% bikes % "및 %"% % "와 같은 제목)이면 – monterico

+0

이 검색어는 '자전거'하위 카테고리 – MKD

관련 문제