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

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

QA

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

본문

최근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


SELECT *
FROM Table
WHERE fild = '$keyword'
UNION ALL
(
SELECT * 
FROM Table
WHERE state = 1
)
LIMIT 0, 5;

 

복잡하게 생각도 해봤는데 

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

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

state 1 인값 가져오면

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

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

 

order by 이슈가 있다면..

 


SELECT * FROM 
(
SELECT *
FROM Table
WHERE fild = '$keyword'
UNION ALL
(
SELECT * 
FROM Table
WHERE state = 1
)
LIMIT 0, 5
)A
ORDER BY A.deep;

 

답변을 작성하시기 전에 로그인 해주세요.
전체 125,873 | RSS
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1402호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT