이전 목록 다음
채택완료

키워드를 포함한것 우선으로 5개 쿼리문 가능 한가요?

2016-02-17 (수) 01:11:38 5,836

최근5건을 쿼리하는데

특정키워드를 제시하면 그 키워드를 포함한 것 우선으로 5개 추출 가능 할까요?

if($keyword)

$search_keyword = " or fild = '$keyword' ";

$sql =" select * from Table where state = 1 {$search_keyword} order by deep limit 0 ,5 " ; 

이렇게 or 로 연결하면 키워드가 포함된것 못찾을때가 있고

and 하면 키워드 포함된것만 나오고

키워드 포함된 레코드가 2건밖에 없을때 나머지 3건은 state = 1 인것 3건을 포함시켜 출력 해주면 되는데...

 

한번의 쿼리문으로 가능 한가요?

 

감사 합니다

 

|

답변 1개 / 댓글 1개

채택된 답변
+20 포인트
Copy
SELECT *FROM TableWHERE fild = '$keyword'UNION ALL(SELECT * FROM TableWHERE state = 1)LIMIT 0, 5;

복잡하게 생각도 해봤는데 

그냥 같은 테이블 유니온 걸어서 

초반에 검색어 걸리는 갯수 가져오고

state 1 인값 가져오면

검색어 부족한 부분을 state 1인값을 가져오므로

마지막에 LIMIT 걸어서 처리면 될거 같네요.

order by 이슈가 있다면..

Copy
SELECT * FROM (SELECT *FROM TableWHERE fild = '$keyword'UNION ALL(SELECT * FROM TableWHERE state = 1)LIMIT 0, 5)AORDER BY A.deep;

답변에 대한 댓글 1개

이런게 서브쿼리라고 하는거군요
잘 테스트 해보겠습니다

답변을 작성하려면 로그인이 필요합니다.