그누보드 리스트 페이지에서 상세검색에 관하여 정보
그누보드 리스트 페이지에서 상세검색에 관하여
본문
댓글 전체
어떤 필드 검색에서 막히시는지 모르겠네요?
체크박스인거보니 학력이신거 같은데
위에 언급하신 어떤거로든 됩니다.
1. like의 경우 '초중석' like concat('%', [학력필드], '%') : 물론 전체인건 제외해야겠죠. 전체는 아예 검색을 하면 안되는거니깐요.(초중석은 디비입력값을 몰라서 초졸,중졸,석졸을 임의로 정한겁니다.)
2. 검색별로 검색 or 연결 : 다른검색조건 and ([학력필드] = ' 초' or [학력필드] = '중' ...) and 다른검색조건 -> or 검색값들자체를 ()로 묶어야 됩니다....겹친다는건 안묶으신듯...
=> 1,2번 둘다 안해보고 그냥 적은겁니다. 1번은 해보세요..될지 안될지...2번은 될겁니다. 기본적인 내용이라
머 이런식입니다. like검색이 훨씬 간결해보이는데 디비에 저장되는 값을 모르니 뭐라고 단정하기는 힘듭니다. or조건이 너무 늘어나면 디비가 힘들어 하니깐요^^;
체크박스인거보니 학력이신거 같은데
위에 언급하신 어떤거로든 됩니다.
1. like의 경우 '초중석' like concat('%', [학력필드], '%') : 물론 전체인건 제외해야겠죠. 전체는 아예 검색을 하면 안되는거니깐요.(초중석은 디비입력값을 몰라서 초졸,중졸,석졸을 임의로 정한겁니다.)
2. 검색별로 검색 or 연결 : 다른검색조건 and ([학력필드] = ' 초' or [학력필드] = '중' ...) and 다른검색조건 -> or 검색값들자체를 ()로 묶어야 됩니다....겹친다는건 안묶으신듯...
=> 1,2번 둘다 안해보고 그냥 적은겁니다. 1번은 해보세요..될지 안될지...2번은 될겁니다. 기본적인 내용이라
머 이런식입니다. like검색이 훨씬 간결해보이는데 디비에 저장되는 값을 모르니 뭐라고 단정하기는 힘듭니다. or조건이 너무 늘어나면 디비가 힘들어 하니깐요^^;
답변 감사합니다. 꾸벅 __ 집에가서 테스트 해보고 많이 도움 되신 분께 채택해드릴게욤 ^^
죄송한데 전체 참고할수 있는구문 없을까요 ; 첫번째랑 세번째 선택시 첫번째 개별 값이 검색 안되욤;;
if($ps_add11 || $ps_add12 || $ps_add13) {$sql_search .= "and wr_6 like concat('%','$ps_add11','%','$ps_add12','%','$ps_add13','%')";}
헉 like검색이 무엇인지 모르시는군요;;
like검색은 몇가지 모양이 있는데 말씀드릴것은 %가 앞뒤로 붙은경우는 사이에 들어가는 글자가 like앞에 내용에 들어가 있는지를 검사해줍니다.
보통은 wr_6 like '%특정단어%' 가 되면 wr_6필드안에 특정단어가 있는지 검사해줍니다.
반대로 '특정단어1특정단어2특정단어3' like '%[wr_6에 들어가는 글자]%' 이면 특정단어1특정단어2특정단어3 안에 wr_6에 들어가는 글자가 있는지 검사하겠죠. 그런데 [wr_6에 들어가는 글자] 는 각 게시글(입사지원서 자료들)마다 다르므로 concat으로 묶으면 된다는 말이었습니다.
(혹시나 싶어 부가설명을 드리자면 %는 아무글자를 뜻하는겁니다. %[특정글자] 이면 [특정글자] 앞에 아무글자가 들어오고 [특정글자]로 끝나는 거고, [특정글자]% 경우는 특정글자로 시작하고 뒤에 아무글자가 오는 경우, %[특정글자]%이면 특정글자 앞뒤에 아무글자나 오고 특정글자가 들어간 것이지 검사입니다. 여기서 아무글자는 아무것도 없는것을 포함합니다. %[특정글자]%이면 특정글자라는 글도 검색성공한다는 말이 되지요)
일단 답변드린 문의라 답변은 해드리는데 일단 기본 mysql책을 다시 보셔야 할거 같습니다...-_-;;
$sql_search .= "and wr_6 like concat('%','$ps_add11','%','$ps_add12','%','$ps_add13','%')";
=> $sql_search .= "and '$ps_add11$ps_add12$ps_add13' like concat('%',wr_6,'%')";
으로 해보세요.
이 문장은 $ps_add11~13 을 연결한 단어속에 해당 이력서에 있는 wr_6에 있는 값들이 있는지를 검사하라는 뜻입니다. $ps_add11$ps_add12$ps_add13 를 쓴것은 체크박스에서 체크할경우만 변수값이 넘어오므로 $ps_add11$ps_add12$ps_add13라고 해도 $ps_add11값이 빈값이면 $ps_add12$ps_add13 가 실제값이 되므로 조건식을 간단히 하기위해 쓴거에요.
like검색은 몇가지 모양이 있는데 말씀드릴것은 %가 앞뒤로 붙은경우는 사이에 들어가는 글자가 like앞에 내용에 들어가 있는지를 검사해줍니다.
보통은 wr_6 like '%특정단어%' 가 되면 wr_6필드안에 특정단어가 있는지 검사해줍니다.
반대로 '특정단어1특정단어2특정단어3' like '%[wr_6에 들어가는 글자]%' 이면 특정단어1특정단어2특정단어3 안에 wr_6에 들어가는 글자가 있는지 검사하겠죠. 그런데 [wr_6에 들어가는 글자] 는 각 게시글(입사지원서 자료들)마다 다르므로 concat으로 묶으면 된다는 말이었습니다.
(혹시나 싶어 부가설명을 드리자면 %는 아무글자를 뜻하는겁니다. %[특정글자] 이면 [특정글자] 앞에 아무글자가 들어오고 [특정글자]로 끝나는 거고, [특정글자]% 경우는 특정글자로 시작하고 뒤에 아무글자가 오는 경우, %[특정글자]%이면 특정글자 앞뒤에 아무글자나 오고 특정글자가 들어간 것이지 검사입니다. 여기서 아무글자는 아무것도 없는것을 포함합니다. %[특정글자]%이면 특정글자라는 글도 검색성공한다는 말이 되지요)
일단 답변드린 문의라 답변은 해드리는데 일단 기본 mysql책을 다시 보셔야 할거 같습니다...-_-;;
$sql_search .= "and wr_6 like concat('%','$ps_add11','%','$ps_add12','%','$ps_add13','%')";
=> $sql_search .= "and '$ps_add11$ps_add12$ps_add13' like concat('%',wr_6,'%')";
으로 해보세요.
이 문장은 $ps_add11~13 을 연결한 단어속에 해당 이력서에 있는 wr_6에 있는 값들이 있는지를 검사하라는 뜻입니다. $ps_add11$ps_add12$ps_add13 를 쓴것은 체크박스에서 체크할경우만 변수값이 넘어오므로 $ps_add11$ps_add12$ps_add13라고 해도 $ps_add11값이 빈값이면 $ps_add12$ps_add13 가 실제값이 되므로 조건식을 간단히 하기위해 쓴거에요.
=> $sql_search .= "and '$ps_add11$ps_add12$ps_add13' like concat('%',wr_6,'%')";
했을때 검색이 안되는데요 ;
근대 생각보다 복잡합니다. 쉽다면 몇시간동안 해메지도 않았겠죠
위에 방법 처럼할경우 중졸과 석사를 클릭할시 중졸 석사 란 값이 넘어가고 DB에 중졸 석사라고 글자가 붙어있지 않으면 검색되지 않습니다. 더군다가 이부분이 검색된다 하더라도 중졸 하나만 값이 있어도 위에 검색 특성상(중졸도 같이 보고 싶어서 선택한것이기때문에) 포함되어 검색되어야 하는데 그렇지 않습니다. 이를 or문이 해결해 줄수 있지만 앞의 다른 검색 결과값을 무시해 버리기 때문에 어려운것 같습니다. 제가 잘못 알고 있는 것인가요?
했을때 검색이 안되는데요 ;
근대 생각보다 복잡합니다. 쉽다면 몇시간동안 해메지도 않았겠죠
위에 방법 처럼할경우 중졸과 석사를 클릭할시 중졸 석사 란 값이 넘어가고 DB에 중졸 석사라고 글자가 붙어있지 않으면 검색되지 않습니다. 더군다가 이부분이 검색된다 하더라도 중졸 하나만 값이 있어도 위에 검색 특성상(중졸도 같이 보고 싶어서 선택한것이기때문에) 포함되어 검색되어야 하는데 그렇지 않습니다. 이를 or문이 해결해 줄수 있지만 앞의 다른 검색 결과값을 무시해 버리기 때문에 어려운것 같습니다. 제가 잘못 알고 있는 것인가요?
블라블라 AND ( 나는 중졸 OR 나는 석사 )
if($ps_add11 || $ps_add12 || $ps_add13) {
$sql_search .= "and (";
if($ps_add11){ $sql_search .= " wr_6 like '%$ps_add11%' ";}
if($ps_add11 && $ps_add12 ||$ps_add11 && $ps_add13){ $sql_search .= "or";}
if($ps_add12){ $sql_search .= " wr_6 like '%$ps_add12%' ";}
if($ps_add12 && $ps_add13 ){ $sql_search .= "or";}
if($ps_add13){ $sql_search .= " wr_6 like '%$ps_add13%' ";}
$sql_search .= ")";
}
감사합니다. 괄호가 해답이었네욤 ;
$sql_search .= "and (";
if($ps_add11){ $sql_search .= " wr_6 like '%$ps_add11%' ";}
if($ps_add11 && $ps_add12 ||$ps_add11 && $ps_add13){ $sql_search .= "or";}
if($ps_add12){ $sql_search .= " wr_6 like '%$ps_add12%' ";}
if($ps_add12 && $ps_add13 ){ $sql_search .= "or";}
if($ps_add13){ $sql_search .= " wr_6 like '%$ps_add13%' ";}
$sql_search .= ")";
}
감사합니다. 괄호가 해답이었네욤 ;