검색 sql문 질문

검색 sql문 질문

QA

검색 sql문 질문

본문

제품 검색을 했을때


if ($q) {
    $arr = explode(" ", $q);
    $detail_where = array();
    for ($i=0; $i<count($arr); $i++) {
        $word = trim($arr[$i]);
        if (!$word) continue;
        $concat = array();
        if ($search_all || $qname)
            $concat[] = "a.it_name";
        if ($search_all || $qexplan)
            $concat[] = "a.it_explan2";
        if ($search_all || $qid)
            $concat[] = "a.it_id";
        if ($search_all || $qbasic)
            $concat[] = "a.it_basic";
        $concat_fields = "concat(".implode(",' ',",$concat).")";
        $detail_where[] = $concat_fields." like '%$word%' ";
    }
    $where[] = "(".implode(" and ", $detail_where).")";
}

 

이런 where 절로 검색이 되잖아용~?

 

제가 궁금한게,

만약에

쥬스 500이라고 검색으로 하면

상단의 sql문에 의하면 (it_name 을 예로 들면)

it_name에 쥬스을 포함하는것 과 it_name에 500을 포함된것들을 노출시키잖아요.

 

그렇게 말고

쥬스 500 을 검색했을때

it_name에 쥬스와 500이 모두 포함된것들을 노출시키고 싶어요 ㅠ

어떻게 해야되나요?

 

이 질문에 댓글 쓰기 :

답변 2

$arr = explode(" ", $q);
이부분이 검색어를 " " 기준으로 문장을 배열(=단어)로 분리하는데, 
분리된 문장으로 각자 검색하고 있기 때문입니다.
이부분을
$arr[0] = $q;
로 변경하시면 될듯요
답변을 작성하시기 전에 로그인 해주세요.
전체 68
QA 내용 검색

회원로그인

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