Warning: Undefined array key "mobile_dir" in /home/kagla/new-sir/old/common.php on line 315
키워드를 포함한것 우선으로 5개 쿼리문 가능 한가요?

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

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

QA

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

답변 1

본문

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

 

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 129,406
© SIRSOFT
현재 페이지 제일 처음으로