MySQL में RAND() और CHAR() फंक्शन का उपयोग करके रैंडम स्ट्रिंग जनरेट कर सकते हैं।
लोअरकेस 10-कैरेक्टर स्ट्रिंग
SELECT CONCAT(
CHAR(ROUND(RAND()*25)+97),
CHAR(ROUND(RAND()*25)+97),
CHAR(ROUND(RAND()*25)+97),
CHAR(ROUND(RAND()*25)+97),
CHAR(ROUND(RAND()*25)+97),
CHAR(ROUND(RAND()*25)+97),
CHAR(ROUND(RAND()*25)+97),
CHAR(ROUND(RAND()*25)+97),
CHAR(ROUND(RAND()*25)+97),
CHAR(ROUND(RAND()*25)+97)
) AS Random10CharacterString;
-- परिणाम उदाहरण: duscikyspy
अपरकेस 10-कैरेक्टर स्ट्रिंग
SELECT CONCAT(
CHAR(ROUND(RAND()*25)+65),
CHAR(ROUND(RAND()*25)+65),
-- ... 10 बार दोहराएं
) AS Random10CharacterString;
-- परिणाम उदाहरण: WMWWVOIXPF
बेहतर तरीका: UUID() या RANDOM_BYTES() (MySQL 8.0+)
-- UUID (36 चर, हाइफन सहित)
SELECT UUID();
-- 550e8400-e29b-41d4-a716-446655440000
-- हाइफन हटाकर 32 चर हेक्स
SELECT REPLACE(UUID(), '-', '');
-- क्रिप्टोग्राफिकली सुरक्षित रैंडम बाइट्स (MySQL 8.0+)
SELECT HEX(RANDOM_BYTES(16)); -- 32 हेक्स चर
SELECT HEX(RANDOM_BYTES(5)); -- 10 हेक्स चर
अल्फान्यूमेरिक स्ट्रिंग (अक्षर + अंक)
-- स्टोर्ड फंक्शन बनाएं
CREATE FUNCTION random_string(len INT) RETURNS VARCHAR(255)
DETERMINISTIC
BEGIN
DECLARE chars VARCHAR(62) DEFAULT 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
DECLARE result VARCHAR(255) DEFAULT '';
DECLARE i INT DEFAULT 0;
WHILE i < len DO
SET result = CONCAT(result, SUBSTRING(chars, FLOOR(RAND() * 62) + 1, 1));
SET i = i + 1;
END WHILE;
RETURN result;
END;
-- उपयोग
SELECT random_string(10); -- उदाहरण: aB3xY9kL2m
यूनिकनेस सुनिश्चित करना
रैंडम जनरेशन यूनिकनेस गारंटी नहीं देता। यूनिक मान के लिए:
UUID()उपयोग करें (वैश्विक रूप से यूनिक)AUTO_INCREMENT+ एन्कोडिंग (base62, base36)- यूनिक कंस्ट्रेंट के साथ रीट्राई लॉजिक