从MySQL中区分全角和半角(mysql全角半角)

字符

MySQL 是当今最流行的关系型数据库,有时我们可能需要从MySQL 数据库中区分全角和半角字符,通过以下几种方式实现:

* 使用 MySQL 的函数 `LENGTH` 和 `CHAR_LENGTH`

`LENGTH` 包含全角字符,`CHAR_LENGTH` 仅包含半角字符,两者的返回值不同。下面是一个例子:

“`sql

SELECT LENGTH(‘A), CHAR_LENGTH(‘A)

“`

这个语句例子中,LENGTH 将会返回2, CHAR_LENGTH 将会返回1。

* 使用 `BINARY` 来区分

我们可以通过把 需要搜索的字符串改写成 `BINARY`,这样就可以看出全角字符和半角字符的差距了:

“`sql

SELECT BINARY ‘A’, BINARY ‘A’;

“`

该语句将会返回A 和 A两个结果,所以get_length 里的每一个字符都被分开,两个半角字符表示 0x41,而一个全角字符则表示 0xef 0xbc 0x41。

* 使用 `UNHEX` 函数

MySQL 有个特有的函数 `UNHEX`,它可以将16进制的字符串转化为真实字符。也可以用在全角和半角字符的识别上:

“`sql

SELECT LENGTH(UNHEX(‘EFBC41’)),CHAR_LENGTH(UNHEX(‘EFBC41’));

“`

执行这个语句将会返回一个数据组,LENGTH 会返回1,而CHAR_LENGTH 会返回3,这就表示原本一个全角字符被分割成了三个半角字符,这样就可以方便的区分全角和半角字符了。

以上三种方式都可以在 MySQL 中成功的区分全角和半角字符,按照具体的需求选择不同的方法实现,可以更好的管理自己的 MySQL 数据库。


数据运维技术 » 从MySQL中区分全角和半角(mysql全角半角)