테스트 사이트 - 개발 중인 베타 버전입니다

mysql구문 질문드립니다. 채택완료

클래스는영원히 5년 전 조회 1,535

안녕하세요

항상 sir 고수님들의 많은 도움을 받고있는 회원입니다.,

다름이아니라 mysql구문 중 궁금한점이 있어 질문드리게되었습니다.

 

    if (!empty($search_keyword)) { ////////////키워드 검색         $where .= " And ( c.c_name like '%{$search_keyword}%')                      OR ( m.bz_nm like '%{$search_keyword}%' )                     OR ( c.c_title like '%{$search_keyword}%' )                     OR ( c.c_addr1 like '%{$search_keyword}%' )                     OR ( c.c_addr2 like '%{$search_keyword}%' )                     OR ( c.c_addr3 like '%{$search_keyword}%' )         ";     }

 

이런식으로 짜여있는데요

하나씩은 검색이 잘되는데 6가지항목을 조합하여 검색하여도 나오게끔 하고싶습니다.

아직 mysql쪽은 초보라 많은 도움 부탁드립니다.

감사합니다!

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

답변 1개

채택된 답변
+20 포인트
5년 전

if (!empty($search_keyword)) { ////////////키워드 검색         $where .= " And (                     ( c.c_name like '%{$search_keyword}%')                      OR ( m.bz_nm like '%{$search_keyword}%' )                     OR ( c.c_title like '%{$search_keyword}%' )                     OR ( c.c_addr1 like '%{$search_keyword}%' )                     OR ( c.c_addr2 like '%{$search_keyword}%' )                     OR ( c.c_addr3 like '%{$search_keyword}%' )                     )         ";     }

로그인 후 평가할 수 있습니다

답변에 대한 댓글 4개

클래스는영원히
5년 전
마르스컴퍼니님 답변 감사드립니다!
바로 적용해보았는데 기존과 결과가 같습니다.
예를들어 성남시만 검색, 만두만 검색하면 따로따로는 잘나오는데

성남시 만두를 검색하면 나오지않고있습니다.ㅜㅜ
마르스컴퍼니
5년 전
그누보드의 사용자 정의 함수를 사용할 수 있다면 다음과 같이 작성해 볼 수 있습니다.
(그렇지 않다면 /lib/common.lib.php 의 get_sql_search() 함수를 참조해 볼 수 있습니다.)

$where .= get_sql_search('', 'c.c_name||m.bz_nm||c.c_title||c.c_addr1||c.c_addr2||c.c_addr3', $search_keyword, 'and');

-------------

위의 코드는.. 아래와 같은 패턴을 처리한 것이라고 보면 됩니다.

$where .= " And (
( c.c_name like '%성남시%')
OR ( m.bz_nm like '%성남시%' )
OR ( c.c_title like '%성남시%' )
OR ( c.c_addr1 like '%성남시%' )
OR ( c.c_addr2 like '%성남시%' )
OR ( c.c_addr3 like '%성남시%' )
)
";

$where .= " And (
( c.c_name like '%만두%')
OR ( m.bz_nm like '%만두%' )
OR ( c.c_title like '%만두%' )
OR ( c.c_addr1 like '%만두%' )
OR ( c.c_addr2 like '%만두%' )
OR ( c.c_addr3 like '%만두%' )
)
";
클래스는영원히
5년 전
마르스컴퍼니님 답변 감사드립니다!
바로 적용해봐야겠네요~
감사합니다^^
클래스는영원히
5년 전
마르스컴퍼니님 덕분에 어제밤 늦게까지 작업한덕분에 잘 해결되었습니다.
정말 감사드립니다.
즐거운 하루 되세요^^

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

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

로그인