최근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개
SELECT *FROM TableWHERE fild = '$keyword'UNION ALL(SELECT * FROM TableWHERE state = 1)LIMIT 0, 5;
복잡하게 생각도 해봤는데
그냥 같은 테이블 유니온 걸어서
초반에 검색어 걸리는 갯수 가져오고
state 1 인값 가져오면
검색어 부족한 부분을 state 1인값을 가져오므로
마지막에 LIMIT 걸어서 처리면 될거 같네요.
order by 이슈가 있다면..
SELECT * FROM (SELECT *FROM TableWHERE fild = '$keyword'UNION ALL(SELECT * FROM TableWHERE state = 1)LIMIT 0, 5)AORDER BY A.deep;
답변에 대한 댓글 1개
답변을 작성하려면 로그인이 필요합니다.
잘 테스트 해보겠습니다