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