2016-10-13 2 views
0

FULLTEXT 검색을 실행하고 고유 한 product_name을 사용하여 결과 만 반환하려고하지만 DISTINCT(product_name)이 적용되지 않는 것 같습니다. 올바른 방향으로 도움이나 조언을 많이받는 것입니다.MySQL FULLTEXT가 고유 한 결과와 일치합니다.

MySQL의 쿼리 :

SELECT DISTINCT(product_name), sku 
FROM products 
WHERE MATCH(product_name) 
AGAINST('Flixonase' IN NATURAL LANGUAGE MODE) 
LIMIT 5 

현재 결과 :

product_name      sku 
FLIXONASE NASAL 24 HR SPRAY 60D 9300673808851 
FLIXONASE NASAL 24 HR SPRAY 120D 9400600822438 
FLIXONASE NASAL 24 HR SPRAY 60D 930067308851 
FLIXONASE NASAL 24 HR SPRAY 60D 9300673831972 
FLIXONASE NASAL 24 HR SPRAY 120D 9300673832146 

참고 : 행 1, & 4 3 중복 product_names 있습니다. 이것이 내가 제거하려고하는 것입니다.

결과 나는 하나의 컬럼에 적용되지 않습니다

product_name      sku 
FLIXONASE NASAL 24 HR SPRAY 60D 9300673808851 
FLIXONASE NASAL 24 HR SPRAY 80D 9400600822438 
FLIXONASE NASAL 24 HR SPRAY 100D 930067308851 
FLIXONASE NASAL 24 HR SPRAY 120D 9300673831972 
FLIXONASE NASAL 24 HR SPRAY 140D 9300673832146 

답변

0

DISTINCT을 꿔, 그것은 전체 행을 의미합니다. 특정 열에 대해 단일 행을 가져 오려면 GROUP BY을 사용하십시오.

SELECT product_name, sku 
FROM products 
WHERE MATCH(product_name) 
    AGAINST('Flixonase 24hr Allergy Relief Nasal Spray 60 Doses' IN NATURAL LANGUAGE MODE) 
GROUP BY product_name 
ORDER BY MATCH(product_name) 
    AGAINST('Flixonase 24hr Allergy Relief Nasal Spray 60 Doses' IN NATURAL LANGUAGE MODE) DESC 
LIMIT 5 
+0

흠 @Barmar
SELECT * FROM products WHERE MATCH(description) AGAINST('my product description' IN NATURAL LANGUAGE MODE) GROUP BY product_name LIMIT 10

덕분에, product_name'하여 '그룹을 추가 이제 더 이상 나에게 오름차순으로'product_name'으로 분류 오히려 다섯 최고의 경기, 다섯 개 결과를 제공하지? – JasonMortonNZ

+0

쿼리에'ORDER BY'가 없습니다. 결과가 어떤 특정 순서로 기대되는 이유는 무엇입니까? – Barmar

+0

나는 'ORDER BY'를 추가하여 일치도가 얼마나 좋습니까? – Barmar

0

동일한 문제가 여기에 있습니다. 이제 GROUP BY으로 해결됩니다.
내 코드 :

관련 문제