이를 위해 하위 쿼리와 함께 ORDER BY RAND()를 사용합니다. 먼저 테이블을 생성하겠습니다 -
mysql> create table DemoTable1853 ( UserId int NOT NULL AUTO_INCREMENT, PRIMARY KEY(UserId) ); Query OK, 0 rows affected (0.00 sec)
삽입 명령을 사용하여 테이블에 일부 레코드 삽입 -
mysql> insert into DemoTable1853 values(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(); Query OK, 58 rows affected (0.00 sec) Records: 58 Duplicates: 0 Warnings: 0
select 문을 사용하여 테이블의 모든 레코드 표시 -
mysql> select * from DemoTable1853;
이것은 다음과 같은 출력을 생성합니다 -
+--------+ | UserId | +--------+ | 1 | | 2 | | 3 | | 4 | | 5 | | 6 | | 7 | | 8 | | 9 | | 10 | | 11 | | 12 | | 13 | | 14 | | 15 | | 16 | | 17 | | 18 | | 19 | | 20 | | 21 | | 22 | | 23 | | 24 | | 25 | | 26 | | 27 | | 28 | | 29 | | 30 | | 31 | | 32 | | 33 | | 34 | | 35 | | 36 | | 37 | | 38 | | 39 | | 40 | | 41 | | 42 | | 43 | | 44 | | 45 | | 46 | | 47 | | 48 | | 49 | | 50 | | 51 | | 52 | | 53 | | 54 | | 55 | | 56 | | 57 | | 58 | +--------+ 58 rows in set (0.00 sec)
다음은 마지막 50개 항목에서 5개의 임의 행만 선택하는 쿼리입니다. -
mysql> select tbl.* from (select tbl1.* from DemoTable1853 tbl1 order by UserId DESC LIMIT 50 ) tbl order by rand() limit 5;
이것은 다음과 같은 출력을 생성합니다 -
+--------+ | UserId | +--------+ | 19 | | 24 | | 43 | | 36 | | 48 | +--------+ 5 rows in set (0.00 sec)