Computer >> 컴퓨터 >  >> 프로그램 작성 >> MySQL

MySQL을 사용하여 마지막 50개 항목에서 5개의 임의 행만 선택하십시오.

<시간/>

이를 위해 하위 쿼리와 함께 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)