0

たとえば、これは example と呼ばれる私のテーブルです。

--------------------------
| id | en_word | zh_word |
--------------------------
| 1  | Internet| 互联网   |
--------------------------
| 2  | Hello   |   你好   |
--------------------------

and so on...

そして、このSQLクエリを使用してみました:

SELECT * FROM `example` WHERE LENGTH(`zh_word`) = 3

何らかの理由で、3 つではなく、多くの 1 文字が表示されます。

どうしてこれなの?これは修正できますか?PhpMyAdminでこれを試しました。

しかし、JavaScriptでそれをやったとき:

"互联网".length == 3; // true

そして、それはうまくいくようです。では、どうしてうまくいかないのでしょうか?

4

2 に答える 2

3

CHAR_LENGTH代わりに使用する必要がありますLENGTH

LENGTH()文字列の長さをバイト単位で返します。
CHAR_LENGTH()文字単位で測定された文字列の長さを返します。

于 2012-11-27T06:50:03.820 に答える
1

LENGTH は長さをバイト単位で返します (中国語はマルチバイトです)。

CHAR_LENGTH を使用して長さを文字数で取得します

http://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_char-length

http://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_length

于 2012-11-27T06:51:30.313 に答える