2026, 새로운 도약을 시작합니다.

mysql로 데이터 불러올때요 채택완료

게시판 리스트를 40개 불러올건데,

여분필드 wr_1 에 값이 존재하는 데이터 중에 랜덤으로 10개가 먼저 출력되고

나머지 30개는 일반 게시글 30개가 나오도록 하려면

쿼리문을 어떤식으로 짜야하나요??

답변 3개

채택된 답변
+20 포인트

리스트를 40개를 한 페이지 다 출력한다는 가정하에 개발자는 아니어서 스크립트로 처리할 것 같아요


리스트 40개를 json 으로 뿌려줄 페이지 하나 만들고 스크립트로 그 페이지를 접속해서 json 데이터를 가져온 후 랜덤으로 10개, 그 외 30개 를 구분해서 하나의 배열에 담아서 출력할 것 같아요

찾아보니 order by rand() 로 하면 랜덤으로 sorting 되나 봅니다

Copy


where wr_1 != '' order by rand() limit 10

이런식으로 하면 랜덤으로 10개 출력 될 것 같구요
 

40개(전체 글) - 10개(랜덤으로 가져온 글)
차집합 개념으로 전체 글 배열에서 랜덤으로 가져온 글 데이터들을 빼면 일반 게시글 30개만 남을테고

위에서 가져온 랜덤글 10개 와 일반글 30개 가지고 출력하면 되지 않을까 싶네요

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

답변에 대한 댓글 3개

그렇게 불러오면 전체글과 랜덤으로 가져온글 중에 중복 되는 글이 있을 것 같은데,, 방법이 있을까요?
넵 그래서 아래에 전체글 40개 중에서 랜덤으로 가져온 글 10개를 뺀 글들을 남기면 랜덤글 제외한 일반글 30개만 남는다는 설명을 달아놓았습니다...

랜덤으로 가져온 게시글의 wr_id 만 따로 뽑아서 배열로 만들어서
[code]
where wr_1 != '' and wr_id not in (랜덤글 10개의 wr_id 만 따로 뽑아놓은 배열)
[/code]
뭐 이런식으로 쿼리를 하나더 짜서 나머지 일반글을 불러올 수도 있을 것 같아요

짱구굴리고 지피티한테 물어보고 구글링해보면서 구현해나가는 식인데 제가 말씀드린 방법이 맞는지는 테스트를 해보질 못해서 아래 @미니님a 님께서 달아주신 답변을 토대로 해보시길 추천드립니다!
감사합니다. 제일 먼저 답변 달아주셔서 채택해요~! union으로 해결했어요~!

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

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

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

Copy

분리해서 가져와서 합친 다음 출력이 가장 베스트일 것 같습니다.

g5_write_yourboard  여기에 실제 가져올 보드명 쓰심 되구요

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

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

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

로그인
🐛 버그신고