2012-11-27 1 views
0

, 이것은 예라고 내 테이블입니다 :SQL을 사용하여 MySQL 데이터베이스에서 중국어 문구의 길이를 찾는 방법은 무엇입니까? 예를 들어

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

and so on... 

그리고 나는이 SQL 쿼리 사용하여 시도 : 어떤 이유로

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

를, 그것은 나에게 세를주고 있지만 것 나에게 많은 단일 문자를 줄 것이다.

왜 이런가요? 이 문제를 해결할 수 있습니까? 나는 PhpMyAdmin에서 이것을 시도했다.

하지만 자바 스크립트를했을 때 :

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

을 그리고 벌금을 작동하는 것 같다. 어떻게 작동하지 않는 걸까요?

+1

문자 그러나 아마 SQL 기지에서 길이를 얻기 위해 (와 중국은 멀티 바이트입니다) 길이는 바이트 수 (이 경우 변환 할 때 글자는 1로 계산 될 수 있지만 같은 알고리즘으로 변환 될 때 중국어 기호는 3 또는 4 일 수 있음) ... 아마도 길이가 아닌 다른 것이있을 수 있습니다. 유니 코드 문자의 실제 카운트에서 oking. 그게 내 추측이야. –

+1

아래 답변을 보았을 때 우리는 같은 트랙을 따라 생각하고 있었던 것 같습니다! 다행히 해결책을 얻었습니다 :) –

+0

@AlbertRenshaw Thanks. – think123

답변

3

당신은 CHAR_LENGTH 대신

LENGTH()LENGTH의 것은 바이트 단위로 측정 문자열의 길이를 반환 사용해야합니다.
CHAR_LENGTH()은 측정 된 문자열 길이를 문자로 반환합니다.

+1

아, 맞아. 내가 참조. – think123

관련 문제