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

MySQL에서 열을 임의의 값으로 업데이트하는 방법

개요

MySQL에서 특정 열의 값을 무작위(랜덤) 값으로 일괄 변경하고 싶다면 RAND() 함수를 활용하면 됩니다. UPDATE 문과 함께 사용하면 테이블의 모든 행에 대해 지정한 범위 내의 임의의 숫자를 손쉽게 할당할 수 있습니다.

기본 문법

열을 임의의 값으로 업데이트하려면 아래와 같은 구문을 사용합니다.

UPDATE yourTableName SET yourColumnName = ROUND(1 + RAND() * 100);

위 구문은 1부터 100 사이의 정수 값을 생성하여 해당 열에 적용합니다. RAND()는 0 이상 1 미만의 실수를 반환하므로, 여기에 100을 곱한 후 1을 더하고 ROUND()로 반올림하면 원하는 범위의 정수를 얻을 수 있습니다.

예제: 테이블 생성 및 데이터 삽입

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

mysql> CREATE TABLE DemoTable
    (
    Number int
    );
Query OK, 0 rows affected (0.46 sec)

INSERT 명령을 사용하여 테이블에 레코드를 삽입합니다.

mysql> INSERT INTO DemoTable VALUES(10);
Query OK, 1 row affected (0.17 sec)
mysql> INSERT INTO DemoTable VALUES(100);
Query OK, 1 row affected (0.11 sec)
mysql> INSERT INTO DemoTable VALUES(80);
Query OK, 1 row affected (0.20 sec)
mysql> INSERT INTO DemoTable VALUES(100000);
Query OK, 1 row affected (0.39 sec)
mysql> INSERT INTO DemoTable VALUES(987);
Query OK, 1 row affected (0.16 sec)

현재 데이터 확인

SELECT 문을 사용하여 테이블의 모든 레코드를 조회합니다.

mysql> SELECT * FROM DemoTable;

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

+--------+
| Number |
+--------+
| 10     |
| 100    |
| 80     |
| 100000 |
| 987    |
+--------+
5 rows in set (0.00 sec)

임의의 값으로 열 업데이트하기

다음은 열의 값을 임의의 값으로 업데이트하는 쿼리입니다.

mysql> UPDATE DemoTable SET Number = ROUND(1 + RAND() * 100);
Query OK, 5 rows affected (0.46 sec)
Rows matched: 5 Changed: 5 Warnings: 0

총 5개 행이 모두 새로운 임의의 값으로 변경되었습니다. 이제 테이블의 레코드를 다시 한번 조회해 보겠습니다.

mysql> SELECT * FROM DemoTable;

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

+--------+
| Number |
+--------+
| 33     |
| 88     |
| 41     |
| 39     |
| 70     |
+--------+
5 rows in set (0.00 sec)

정리

이처럼 ROUND(1 + RAND() * N) 형태의 표현식을 UPDATE 문에 활용하면, 1부터 N까지 범위 내의 임의의 정수로 열 값을 손쉽게 갱신할 수 있습니다. 테스트 데이터 생성이나 샘플 데이터 초기화 등 다양한 상황에서 유용하게 사용할 수 있습니다.