MySQL에서 무작위 및 고유 문자열 생성
오늘은 다양한 함수를 사용하여 MySQL에서 임의의 고유한 문자열을 생성하는 방법을 배웁니다. 이러한 함수에는 MD5()
, RAND()
, SUBSTR()
및 UUID()
가 포함됩니다.
MySQL에서 임의의 문자열을 생성하는 내장된 방법은 없지만 요구 사항을 충족하기 위해 이점을 얻을 수 있는 다른 많은 방법이 있습니다. 여기서는 MySQL에서 임의의 고유한 문자열을 생성하는 가장 쉽고 효율적인 방법에 대해 배웁니다.
MD5()
, RAND()
및 SUBSTR()
을 사용하여 MySQL에서 무작위 및 고유 문자열 생성
예제 코드:
SELECT SUBSTR(MD5(RAND()),1,8) AS RandomString;
출력:
+--------------+
| RandomString |
+--------------+
| 7d192f5f |
+--------------+
1 row in set (0.00 sec)
MD5()
함수는 인수의 128비트 체크섬 표현을 생성했습니다. 위의 예에서 RAND()
함수에 의해 생성된 값은 MD5()
함수의 인수입니다. RAND()
함수는 임의의 값을 생성했습니다.
그러나 체크섬 결과는 MD5()
함수에 전달된 인수에서 생성된 32개의 영숫자 문자입니다. 또한 SUBSTR()
을 사용하여 프로젝트 요구 사항에 따라 MD5
문자열의 일부를 제거했습니다.
SUBSTR()
은 문자열, 추출 시작 위치 및 길이의 세 가지 매개변수를 사용합니다. 위의 예제 코드에서는 첫 번째 문자부터 시작하여 MD5
문자열에서 8개의 문자열을 추출했습니다.
UUID()
를 사용하여 MySQL에서 무작위 및 고유 문자열 생성
예제 코드:
SELECT LEFT(UUID(), 8)
출력:
+-----------------+
| LEFT(UUID(), 8) |
+-----------------+
| 4a1f35bc |
+-----------------+
1 row in set (0.00 sec)
MySQL에서 8자 문자열을 생성하는 또 다른 방법은 위에 주어진 LEFT(UUID(),8)
입니다. RFC 4122(Universally Unique Identifier URN Namespace)는 128비트 길이 값인 [UUID()
](Universal Unique Identifier)를 지정했습니다.
시간과 공간에 따라 전 세계적으로 고유한 가치를 생성합니다. UUID()
에 의해 생성된 값은 고유하므로 예측하거나 추측할 수 없습니다.
UUID()
는 항상 임의의 값을 생성한다는 의미입니다. 다음 쿼리를 사용하여 8자 또는 10자 길이의 문자열을 얻을 수 있습니다.
예제 코드:
-- for 8 characters long string
SELECT LEFT(UUID(),8) random_string ;
-- for 10 characters long string
SELECT RIGHT(UUID(),10) random_string ;
UUID()
는 하이픈으로 구분된 5개 섹션으로 구성된 16진수 값을 출력한다는 것을 기억하십시오. 따라서 원하는 문자열 길이에 따라 숫자, 하이픈 및 알파벳이 포함된 문자열을 얻을 수 있습니다.
예제 코드:
SELECT UUID(), LEFT(UUID(), 8), right(uuid(),20);
출력:
+--------------------------------------+-----------------+----------------------+
| UUID() | LEFT(UUID(), 8) | right(uuid(),20) |
+--------------------------------------+-----------------+----------------------+
| b3e73af1-d811-11ec-b138-d8d09042fdaa | b3e73b03 | ec-b138-d8d09042fdaa |
+--------------------------------------+-----------------+----------------------+
1 row in set (0.00 sec)