2011-01-28 6 views
7

열 우선 순위에 따라 mysql 결과를 정렬하는 방법은 무엇입니까?열 우선 순위에 따라 mysql 결과를 정렬하는 방법은 무엇입니까?

예. 제품 표가 있고 테이블에 제품 이름 (p.name)과 제품 설명 (p.desc)이라는 두 개의 열이 있습니다.

사용자는 데이터베이스에 제품을 찾기 위해 키워드를 입력 할 수 있어야합니다.

"p.name LIKE '%keyword%' OR p.desc LIKE '%keyword%' 

p.name과 일치하는 결과가 먼저 반환되고 p.desc가 두 번째로 반환되기를 원합니다.

어떻게해야합니까? 첫 번째 조건이 만족 될 경우

답변

11

나는 order by 절은 false로 평가되며,

ORDER BY (NOT (p.name LIKE '%keyword%')) 

같은 것을 시도 할 것이다. 따라서 그러한 기록은 앞으로 밀려날 것입니다.

편집
아마 실수로 질문으로 들어간 기호 (=)를 같음.

+2

작동하지만 더 큰 세트에서는 최적화가 필요할 수 있습니다. – Piskvor

+0

'LIKE = ...'? – Gumbo

+0

@ 검보 글쎄, 나는 이미 그를 위해 일한다고 생각했다 :) –

1

MATCH() ... AGAINST 이상으로 here과 같이 MySQL 전체 텍스트 검색을 시도해야합니다. 그런 다음 검색 순위에 따라 열을 정렬하십시오.

관련 문제