Heim > Datenbank > MySQL-Tutorial > Was ist der Unterschied zwischen den MySQL-Funktionen LENGTH() und CHAR_LENGTH()?

Was ist der Unterschied zwischen den MySQL-Funktionen LENGTH() und CHAR_LENGTH()?

WBOY
Freigeben: 2023-09-02 16:57:07
nach vorne
1209 Leute haben es durchsucht

MySQL LENGTH() 和 CHAR_LENGTH() 函数有什么区别?

Beide Funktionen sind Zeichenfolgenfunktionen und geben die Anzahl der in der Zeichenfolge vorhandenen Zeichen zurück. Sie unterscheiden sich jedoch darin, dass die Funktion CHAR_LENGTH() die Zeichenfolgenlänge in „Zeichen“ misst, während die Funktion LENGTH() die Zeichenfolgenlänge in „Bytes“ misst. Mit anderen Worten können wir sagen, dass die Funktion CHAR_LENGTH() multibytesicher ist, d. h. sie ignoriert, ob ein Zeichen ein Einzelbyte oder ein Multibyte ist. Wenn eine Zeichenfolge beispielsweise vier 2-Byte-Zeichen enthält, LENGTH().

Diese Funktion gibt 8 zurück, während die Funktion CHAR_LENGTH() 4 zurückgibt. In diesem Sinne können wir sagen, dass CHAR_LENGTH() präzisere Ergebnisse liefert als die Funktion LENGTH().

Dieser Unterschied ist besonders relevant für Unicode, wo die meisten Zeichen in zwei Bytes kodiert sind, oder für UTF-8, wo die Anzahl der Bytes variiert. Das folgende Beispiel zeigt:

Beispiel

Im folgenden Beispiel wird zunächst die Zeichenfolge „Gaurav“ in ucs2 strong> konvertiert, dem Unicode-2-Byte-Zeichensatz. Wir können dann den Unterschied in der Ergebnismenge beobachten, d. h. LENGTH() gibt die Länge in Bytes zurück, während CHAR_LENGTH() die Länge in Zeichen zurückgibt.

mysql> SET @A = CONVERT('Gaurav' USING ucs2);
Query OK, 0 rows affected (0.15 sec)

mysql> Select Char_length(@A), LENGTH(@A);

+-----------------+------------+
| Char_length(@A) | LENGTH(@A) |
+-----------------+------------+
| 6               | 12         |
+-----------------+------------+

1 row in set (0.03 sec)
Nach dem Login kopieren

Im folgenden Beispiel verwenden wir Sonderzeichen in UTF-8, die Anzahl der Bytes im Zeichensatz variiert. Wir können dann die Unterschiede in der Ergebnismenge beobachten.

mysql> SET @B = CONVERT('©' USING utf8);
Query OK, 0 rows affected (0.15 sec)

mysql> Select CHAR_LENGTH(@B);

+-----------------------+
| CHAR_LENGTH(@B)       |
+-----------------------+
| 1                     |
+-----------------------+

1 row in set (0.00 sec)

mysql> Select LENGTH(@B);

+---------------+
| LENGTH(@B)    |
+---------------+
| 2             |
+---------------+

1 row in set (0.00 sec)
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen den MySQL-Funktionen LENGTH() und CHAR_LENGTH()?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:tutorialspoint.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage