Generieren zufällige und eindeutige Zeichenfolgen in MySQL

Mehvish Ashiq 30 Januar 2023
  1. Verwenden Sie MD5(), RAND() und SUBSTR(), um zufällige und eindeutige Zeichenfolgen in MySQL zu generieren
  2. Verwenden Sie UUID(), um zufällige und eindeutige Zeichenfolgen in MySQL zu generieren
Generieren zufällige und eindeutige Zeichenfolgen in MySQL

Heute werden wir lernen, verschiedene Funktionen zu verwenden, um zufällige und eindeutige Zeichenfolgen in MySQL zu generieren. Zu diesen Funktionen gehören MD5(), RAND(), SUBSTR() und UUID().

Es gibt keine eingebaute Methode zum Generieren zufälliger Zeichenfolgen in MySQL, aber es gibt viele andere Möglichkeiten, wie wir uns einen Vorteil verschaffen können, um die Anforderungen zu erfüllen. Hier lernen wir die einfachsten und effizientesten Methoden kennen, um zufällige und eindeutige Zeichenfolgen in MySQL zu generieren.

Verwenden Sie MD5(), RAND() und SUBSTR(), um zufällige und eindeutige Zeichenfolgen in MySQL zu generieren

Beispielcode:

SELECT SUBSTR(MD5(RAND()),1,8) AS RandomString;

AUSGANG:

+--------------+
| RandomString |
+--------------+
| 7d192f5f     |
+--------------+
1 row in set (0.00 sec)

Die Funktion MD5() generierte die 128-Bit-Prüfsummendarstellung des Arguments. Im obigen Beispiel ist der von der Funktion RAND() generierte Wert das Argument der Funktion MD5(); die Funktion RAND() erzeugte zufällige Werte.

Das Prüfsummenergebnis besteht jedoch aus 32 alphanumerischen Zeichen, die aus dem an die Funktion MD5() übergebenen Argument generiert werden. Außerdem haben wir den SUBSTR() verwendet, um einen Teil des MD5-Strings entsprechend den Anforderungen unseres Projekts abzuziehen.

Der SUBSTR() nimmt drei Parameter entgegen: die Zeichenkette, die Startposition der Extraktion und die Länge. Im obigen Beispielcode haben wir mit dem ersten Zeichen begonnen und 8 Zeichenketten aus der Zeichenfolge MD5 extrahiert.

Verwenden Sie UUID(), um zufällige und eindeutige Zeichenfolgen in MySQL zu generieren

Beispielcode:

SELECT LEFT(UUID(), 8)

AUSGANG:

+-----------------+
| LEFT(UUID(), 8) |
+-----------------+
| 4a1f35bc        |
+-----------------+
1 row in set (0.00 sec)

Eine andere Methode, um den 8-stelligen String in MySQL zu erzeugen, ist LEFT(UUID(),8), wie oben angegeben. Der RFC 4122 (Universally Unique Identifier URN Namespace) spezifiziert den UUID() (Universal Unique Identifier), der ein 128 Bit langer Wert ist.

Es generiert einen zeitlich und räumlich global einmaligen Wert. Da die von UUID() erzeugten Werte einzigartig sind, sind sie nicht vorhersagbar oder erratbar.

Das heisst UUID() generiert immer einen zufälligen Wert. Wir können die folgenden Abfragen verwenden, um 8 oder 10 Zeichen lange Zeichenfolgen zu erhalten.

Beispielcode:

-- for 8 characters long string
SELECT LEFT(UUID(),8) random_string ;
-- for 10 characters long string
SELECT RIGHT(UUID(),10) random_string ;

Denken Sie daran, dass die UUID() einen Hexadezimalwert ausgibt, der aus fünf Abschnitten besteht, die durch einen Bindestrich getrennt sind. So können wir je nach gewünschter Zeichenfolgenlänge eine Zeichenfolge erhalten, die Zahlen, Bindestriche und Buchstaben enthält.

Beispielcode:

SELECT UUID(),  LEFT(UUID(), 8), right(uuid(),20);

AUSGANG:

+--------------------------------------+-----------------+----------------------+
| UUID()                               | LEFT(UUID(), 8) | right(uuid(),20)     |
+--------------------------------------+-----------------+----------------------+
| b3e73af1-d811-11ec-b138-d8d09042fdaa | b3e73b03        | ec-b138-d8d09042fdaa |
+--------------------------------------+-----------------+----------------------+
1 row in set (0.00 sec)
Mehvish Ashiq avatar Mehvish Ashiq avatar

Mehvish Ashiq is a former Java Programmer and a Data Science enthusiast who leverages her expertise to help others to learn and grow by creating interesting, useful, and reader-friendly content in Computer Programming, Data Science, and Technology.

LinkedIn GitHub Facebook

Verwandter Artikel - MySQL String