MySQL에서 테이블에 저장된 데이터 중 임의의(랜덤한) 값 3개를 조회하려면 RAND() 함수와 LIMIT 절을 함께 사용하면 됩니다. 여기서 RAND()는 행을 무작위로 정렬하는 역할을 하고, LIMIT 3은 결과를 3개로 제한하는 역할을 합니다.
기본 문법
SELECT yourColumnName FROM yourTableName ORDER BY RAND() LIMIT 3;
이제 실제 예제를 통해 단계별로 살펴보겠습니다.
1단계: 테이블 생성
먼저 예제에 사용할 테이블을 생성합니다.
mysql> CREATE TABLE DemoTable646 (
Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
FirstName varchar(100)
);
Query OK, 0 rows affected (0.76 sec)2단계: 데이터 삽입
INSERT 명령어를 사용해 몇 개의 레코드를 추가합니다.
mysql> INSERT INTO DemoTable646(FirstName) VALUES('John');
Query OK, 1 row affected (0.18 sec)
mysql> INSERT INTO DemoTable646(FirstName) VALUES('Bob');
Query OK, 1 row affected (0.14 sec)
mysql> INSERT INTO DemoTable646(FirstName) VALUES('Chris');
Query OK, 1 row affected (0.10 sec)
mysql> INSERT INTO DemoTable646(FirstName) VALUES('David');
Query OK, 1 row affected (0.28 sec)
mysql> INSERT INTO DemoTable646(FirstName) VALUES('Bob');
Query OK, 1 row affected (0.11 sec)
mysql> INSERT INTO DemoTable646(FirstName) VALUES('Carol');
Query OK, 1 row affected (0.27 sec)
mysql> INSERT INTO DemoTable646(FirstName) VALUES('Mike');
Query OK, 1 row affected (0.10 sec)3단계: 전체 데이터 확인
SELECT 문으로 테이블의 모든 레코드를 조회해 보겠습니다.
mysql> SELECT * FROM DemoTable646;
실행 결과는 다음과 같습니다.
+----+-----------+ | Id | FirstName | +----+-----------+ | 1 | John | | 2 | Bob | | 3 | Chris | | 4 | David | | 5 | Bob | | 6 | Carol | | 7 | Mike | +----+-----------+ 7 rows in set (0.00 sec)
4단계: 랜덤 값 3개 조회
다음 쿼리는 MySQL 테이블에서 임의의 값 3개를 표시합니다.
mysql> SELECT FirstName FROM DemoTable646 ORDER BY RAND() LIMIT 3;
실행 결과는 다음과 같습니다.
+-----------+ | FirstName | +-----------+ | Mike | | John | | Chris | +-----------+ 3 rows in set (0.00 sec)
위 출력에서 볼 수 있듯이, ORDER BY RAND() LIMIT 3 구문은 테이블의 모든 행을 무작위 순서로 섞은 뒤 상위 3개의 행만 반환합니다. 이 쿼리를 실행할 때마다 매번 다른 조합의 결과가 출력되므로, 추첨 이벤트나 샘플 데이터 추출 등에 유용하게 활용할 수 있습니다.