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

mysql 에서 LIKE 관련 질문입니다.(게시판 ) 채택완료

sukja 4년 전 조회 1,851

안녕하세요

 

게시판에서 공지 여부 관련 쿼리인되요

 

---------------쿼리
SELECT 
*,( SELECT  count(bo_notice) AS cnt
    FROM g5_board
    WHERE bo_notice like '%g5_write_moro.wr_id%'

) AS noti_chk 
FROM g5_write_moro

 

---------------결과

noti_chk 필드 : 0 

 

 

: 질문드립니다.

  정답은 1일 나와야 되는데 쿼리에 문제가 있을까요? 

  조언 구합니다.

 

ps. 게시물 아이디 값을 넣으면 값이 존재 합니다.

SELECT bo_notice  FROM  g5_board  WHERE bo_notice like '%270%'

---- 쿼리결과

bo_notice : 270

 

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

답변 4개

채택된 답변
+20 포인트

view에서 필요하신 것인지

list에서 필요하신 것인지 잘 모르겠군요.

bbs/list.php에서 

    $arr_notice = explode(',', trim($board['bo_notice']));
이렇게 한 다음

if( in_array( $wr_id, $arr_notice)) {

   echo '공지 글';

} else {

}

이런 식으로 처리해 보세요.

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

답변에 대한 댓글 1개

s
sukja
4년 전
감사합니다. ^^
이걸로 한번 진행 해 보겠습니다. 감사합니다.~

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

4년 전

</p>

<p>select *, 

       (select find_in_set(g5_write_moro.wr_id, bo_notice) from g5_board where bo_table = 'moro') AS noti_chk 

  from g5_write_moro</p>

<p>

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

답변에 대한 댓글 1개

s
sukja
4년 전
넵 감사합니다.

순차적으로 진행 해보겠습니다. 조언 감사합니다. ^^

잘 되네요 활용 잘했습니다. ~~~~

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

4년 전

한컬럼내의 콤마 구분자를 구분지어 검색하고 싶다면 find_in_set 을 활용하세요

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

답변에 대한 댓글 1개

s
sukja
4년 전
넵 감사합니다. ^^

순차적으로 진행 해보겠습니다. 조언 감사합니다.

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

</p>

<p>SELECT *,( SELECT count(bo_notice) AS cnt FROM g5_board WHERE bo_notice like concat('%',g5_write_moro.wr_id,'%')) AS noti_chk 

FROM g5_write_moro</p>

<p>

이기는 한데 추천하지는 않습니다. 해당 글이 공지 설정된 글인지 체크하려고 하시는거같은데, wr_id가 1일경우 10도, 111도 검색이 되어버리니 다른 방법을 찾으시는걸 권해드립니다.

 

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

답변에 대한 댓글 1개

s
sukja
4년 전
네 맞아요 ^^
적용해보니
270, 2, 7 코드도 공지로 체크 해서 이걸로 안되겠더라구요

감사합니다. ^^~

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

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

로그인