MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

MySQL LENGTH()関数は文字列の長さをどのように測定しますか?


MySQL LENGTH()関数は、文字列の長さを「バイト」で測定します。これは、マルチバイトで安全ではないことを意味します。 CHAR_LENGTH()やCHARACTER_LENGTH()などのマルチバイトセーフ関数と、特にUnicodeに関連するLENGTH()関数の結果の違い。ほとんどの文字は2バイトでエンコードされるか、UTF-8に関連します。バイト数は異なります。たとえば、文字列に4つの2バイト文字が含まれている場合、LENGTH()関数は8を返しますが、CHAR_LENGTH()またはCHARACTER_LENGTH()関数は4を返します。これは次の例で示されています-

mysql> Select LENGTH('tutorialspoint');
+--------------------------+
| LENGTH('tutorialspoint') |
+--------------------------+
|                       14 |
+--------------------------+
1 row in set (0.00 sec)

上記の結果セットは、文字列「tutorialspoint」の長さがまだUnicode文字に変換されていないため14であることを示しています。次のクエリはそれをUnicode文字に変換します-

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

Unicodeで文字列を変換すると、以下に示すように、Unicodeでは1文字が2バイトかかるため、結果は14ではなく28になります-

mysql> Select LENGTH(@A);
+------------+
| LENGTH(@A) |
+------------+
|         28 |
+------------+
1 row in set (0.00 sec)

ただし、CHAR_LENGTH()は、以下に示すようにマルチバイトセーフ関数であるため、結果は14になります-

mysql> Select CHAR_LENGTH(@A);
+-----------------+
| CHAR_LENGTH(@A) |
+-----------------+
|              14 |
+-----------------+
1 row in set (0.00 sec)

  1. C#を使用して文字列の長さを計算するにはどうすればよいですか?

    C#のString.Lengthプロパティを使用して、文字列の長さを取得します。 str.Length このプロパティは、文字列内の単語を計算し、指定された文字列の長さを表示します。たとえば、文字列Amitの文字数は4文字です- string str = "Amit"; 例 以下は、文字列の長さを計算するためのC#プログラムです- using System; using System.Collections; namespace Demo {    class Program {       static void

  2. Pythonで文字列の長さを取得するにはどうすればよいですか?

    Pythonには、複合オブジェクトの長さを指定するlen()というメソッドがあります。文字列の長さを取得するには、文字列をlen()呼び出しに渡すだけです。たとえば、 print(len('abcdefghijklmnopqrstuvwxyz')) 出力 26