0

例如,这是我的表,称为示例:

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

and so on...

我尝试使用这个 SQL 查询:

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

出于某种原因,它不会给我三个,但会给我很多单字母字符。

为什么是这样?这可以解决吗?我在 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 回答