SELECT 해서 RAND 함수 통해 랜덤으로 출력하되 어느 한 필드 기준으로 랜덤으로 추
본문
SELECT 해서 RAND 함수 통해 랜덤으로 출력하되 어느 한 필드 기준으로 랜덤으로 출력할수 있을까요?
예를들어
SELECT * FROM 테이블 ORDER BY RAND();
이 구문이 있습니다.
그런데 필드 중 category 이라는 필드가 있는데
이 필드 정렬하면서 랜덤이 가능할까요?
답변 2
번호 카테고리 어떤필드
------ -------- --------
1 IT kkk
2 IT ooo
3 IT yyy
4 회사 bbb
5 회사 ccc
6 회사 ddd
7 여행 eee
8 여행 fff
9 여행 ggg
SELECT
A.*
FROM
테이블 A,
(
SELECT @rownum:=@rownum+1 AS seq, C.카테고리
FROM
(SELECT DISTINCT(카테고리) AS 카테고리 FROM 테이블 ORDER BY RAND()) C,
(SELECT @rownum:=0) D
) B
WHERE
A.카테고리=B.카테고리
ORDER BY
B.seq, RAND()
번호 카테고리 어떤필드
------ -------- --------
8 여행 fff
9 여행 ggg
7 여행 eee
1 IT kkk
3 IT yyy
2 IT ooo
5 회사 ccc
6 회사 ddd
4 회사 bbb
번호 카테고리 어떤필드
------ -------- --------
3 IT yyy
1 IT kkk
2 IT ooo
9 여행 ggg
8 여행 fff
7 여행 eee
6 회사 ddd
5 회사 ccc
4 회사 bbb
번호 카테고리 어떤필드
------ -------- --------
5 회사 ccc
6 회사 ddd
4 회사 bbb
9 여행 ggg
7 여행 eee
8 여행 fff
2 IT ooo
1 IT kkk
3 IT yyy
!-->
order by category, rand()