Computer >> 컴퓨터 >  >> 프로그래밍 >> MySQL

MySQL에서 열 값 중 무작위로 2개 선택하는 방법

MySQL에서 열의 값을 무작위(random)로 선택하려면 ORDER BY RAND()를 사용하면 됩니다. 여기서 선택할 개수를 2개로 제한하려면 LIMIT 2를 함께 사용합니다.

1. 샘플 테이블 생성

먼저 예제에 사용할 테이블을 생성해 보겠습니다.

mysql> create table DemoTable1815
    (
    Question text
    );
Query OK, 0 rows affected (0.00 sec)

2. 데이터 삽입

INSERT 명령을 사용해 테이블에 몇 개의 레코드를 삽입합니다.

mysql> insert into DemoTable1815 values('What is your name?');
Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1815 values('What is your college name?');
Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1815 values('What is your nick name?');
Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1815 values('What is your enemy name?');
Query OK, 1 row affected (0.00 sec)

3. 전체 레코드 확인

SELECT 문을 사용해 테이블의 모든 레코드를 조회해 보겠습니다.

mysql> select * from DemoTable1815;

실행 결과는 다음과 같습니다.

+----------------------------+
| Question                   |
+----------------------------+
| What is your name?        |
| What is your college name? |
| What is your nick name?    |
| What is your enemy name?   |
+----------------------------+
4 rows in set (0.00 sec)

4. 무작위로 2개의 레코드 선택하기

이제 ORDER BY RAND()LIMIT 2를 조합하여 레코드 중 무작위로 2개만 선택하는 쿼리를 실행해 보겠습니다.

mysql> select * from DemoTable1815 order by rand() limit 2;

실행 결과는 다음과 같습니다.

+----------------------------+
| Question                   |
+----------------------------+
| What is your college name? |
| What is your enemy name?   |
+----------------------------+
2 rows in set (0.00 sec)

참고: ORDER BY RAND()는 실행할 때마다 결과가 달라지며, 테이블의 모든 행에 임의의 값을 부여해 정렬하기 때문에 데이터 양이 매우 많은 경우 성능이 저하될 수 있습니다. 대용량 테이블에서는 다른 최적화 기법을 고려하는 것이 좋습니다.