MySQL 文字列長の選択
MySQL では文字列の長さに基づいてデータを選択することができます。 1 つの方法は、
<code class="sql">SELECT * FROM table ORDER BY string_length(column);</code>
に示すように、string_length() 関数を使用することです。ただし、このタスクには、より効率的な関数 CHAR_LENGTH() があります。この関数は、文字の長さ (シングルバイトかマルチバイトなど) に関係なく、文字列内の文字数を返します。
LENGTH() 関数を使用して、文字列が占めるバイト数を決定することもできます。文字列。ただし、マルチバイト文字セットの場合は、バイト数ではなく文字数を返す CHAR_LENGTH() が推奨されるオプションです。
LENGTH() と CHAR_LENGTH() の違いを説明するために、次の例を考えてみましょう。 :
SELECT LENGTH('abc'), CHAR_LENGTH('abc') FROM dual;
UTF-8 文字エンコーディングの場合、結果は次のようになります:
LENGTH: 3 CHAR_LENGTH: 3
ただし、文字エンコーディングが UTF-16 に変更された場合、結果は次のようになります:
LENGTH: 6 CHAR_LENGTH: 3
これは、UTF-16 では各文字のエンコードに 2 バイトが使用されるのに対し、UTF-8 では可変長エンコード (ASCII 文字の場合は 1 バイト、Unicode 文字の場合は 2 バイト) が使用されるためです。したがって、CHAR_LENGTH() は、MySQL の文字列長について、より一貫性があり、文字を認識したメトリクスを提供します。
以上が文字列長の選択に最適な MySQL 関数は CHAR_LENGTH() と LENGTH() のどちらですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。