MySQL에서 한자를 결정하는 방법은 무엇입니까?

黄舟
풀어 주다: 2016-12-21 17:07:30
원래의
1972명이 탐색했습니다.

원본 출처: Wen Guobing 원본을 Bole Toutiao에 공유하신 것을 환영합니다

1 소개

제작 환경에서는 중국 데이터를 얻는 것과 같은 시나리오가 종종 있습니다. 그러면 질문이 생깁니다. 한자를 어떻게 일치시킬 수 있습니까?

이 글에서는 두 가지 방법을 제공합니다.

두 번째 데모

2.1 환경


mysql> "%version%"과 같은 변수 표시;

+- -----------+------------ -----+

| 변수_이름 | 값 |

+------------+ -----------------------------------+

| 프로토콜_버전 10 |

| 버전 |

| version_comment | MySQL 커뮤니티 서버(GPL) |

| version_compile_os |

+------------+---- ------- ----------+

세트당 5행(0.00초)

2.2 테스트 테이블 생성 및 테스트 데이터 삽입

mysql -S /tmp /mysql_5173.sock -uroot -proot

테스트 테이블을 생성하고 테스트 데이터를 삽입합니다.

mysql> USE 테스트;

데이터베이스 변경

mysql> CREATE TABLE 사용자

-> >-> ) DEFAULT CHARSET = utf8 ENGINE = INNODB;

쿼리 확인, 0개 행이 영향을 받음(0.10초)

mysql> 'user' G;

******************************** 1. 행 *************** *** *********

이름: user

엔진: InnoDB

버전: 10

Row_format: Compact

행: 2

Avg_row_length: 8192

Data_length: 16384

Max_data_length: 0

Index_length: 0

Data_free : 0

자동_증분: NULL

Create_time: 2015-01-16 18:01:36

Update_time: NULL

Check_time: NULL

데이터 정렬: utf8_general_ci

체크섬: NULL

Create_options:

댓글:

1행 세트(0.00초)

오류:

지정된 쿼리 없음

mysql> INSERT INTO user VALUES('robin');

쿼리 확인, 1행이 영향을 받음(0.01초)

mysql> ; INSERT INTO user VALUES('Wen Guobing');

쿼리 확인, 1개 행이 영향을 받음(0.00초)

세 가지 구현

3.1 방법 1 정규 표현식

mysql> SELECT * FROM 사용자 G;

****************************** 1. 행 *** ************************

이름: 로빈

***** *********** **************** 2. 행 ******************** *******

이름: Wen Guobing

2행 세트(0.00초)

mysql> SELECT 이름,

-> ; CASE 이름 REGEXP "[u0391-uFFE5]"

-> WHEN 1 "한자가 아님"

-> "한자입니다"

-> END AS "한자인지 확인"

-> FROM user;

+----------+---- --- ---------+

| 이름 | 한자인지 확인|

+ -----------+------ ----------+

| |는 한자가 아닙니다|

|원궈빙은 한자입니다|

+---------+---------- ---+

세트의 2개 행(0.00초)

mysql> SELECT name FROM user WHERE NOT (name REGEXP "[ u0391-uFFE5]");

+---- -------+

| 이름 |

+--------- ---+

| 원궈빙|

+------------+

1 rowinset(0.00초)

3.2 방법 2 length() 및 char_length( )


mysql> SELECT name, length(name), char_length(name) FROM user;

+ --------+------------ -----+------+

| 이름 | 길이(이름) | char_length(이름) |

+------------+---------- ---+---- +

| 로빈 | 5 |

| 🎜>

+---------+---- --------+---- -+

세트의 2개 행(0.00초)

mysql> SELECT name FROM user WHERE length(name) char_length(name);

+---- -----+

| 이름 |

+------------+

| 원궈빙|

+------------+

1행 집합(0.00초)

위 내용은 MySQL에서 한자를 판별하는 방법입니다. 더 많은 관련 내용은 PHP 중국어 홈페이지(www.php.cn)를 주목해주세요!


관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!