mysql 특정 게시물 우선 랜덤 정렬 질문요
본문
예를 들어 100개의 게시물이 있고, 그중에 10개의 특정값 게시물만 상단에 띄우고, 나머지 90개는 걍 일반 정렬로 할려고 하는데요.
문제는 공지 10개를 우선적으로 나오고, 그 10개가 랜덤으로 돌아가야 합니다.
그래서 생각한게
(select * from aaa where val = 1 order by rand())
union
(select * from aaa ) limit 0,15
이런식으로 하면 어떨까 했는데 안되더라고요.
어떻게 해야 할까요?
그누보드 공지기능으로는 안될 상황 입니다.
답변 2
적절한 위치(list.php 상단정도)에 이런식으로 넣어주면 어떨까 싶은데요..
랜덤으로 10개 가져와서 공지글 목록을 바꿔치기 하는겁니다.
글작성시의 공지는 무시된다는 전제입니다.
공지글 기능을 그대로 써먹는거라서 카테고리나 검색시에는 적용되지 않겠네요.
if($bo_table == 'bid') {
$tmp = array();
$sql = ' select wr_id from '.$write_table.' where wr_is_comment=0 order by rand() limit 10 ';
$result = sql_query($sql);
while($row=sql_fetch_array($result)) $tmp[] = $row['wr_id'];
$board['bo_notice'] = implode(',', $tmp);
}
리스트에서 안뿌려주고 뷰에서 뿌리거나
인덱스에서라도 저렇게 뿌리면 될텐데여
물론 select * from 테이블명 이렇게 해줘야겟져
어짜피
100개의 게시물이있어도
상단에는 10개의 게시물이 나올꺼고
하단에는 90개의 게시물이 나오는거 아닌가요?
쿼리 두번 따로 돌리셔도 될듯한데요
상단 10개에는 rand() limit 10으로 10개만 가져와서 뿌려주고
하단 90개에는 걍 일반정렬로 받아오심될듯?
답변을 작성하시기 전에 로그인 해주세요.